android仿QQ在对应组件位置,jquery 弹出框 组件选项框是怎么实现的

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Android实现仿QQ登录可编辑下拉框
下载积分:1473
内容提示:Android实现仿QQ登录可编辑下拉框
文档格式:DOC|
浏览次数:163|
上传日期: 03:07:22|
文档星级:
该用户还上传了这些文档
Android实现仿QQ登录可编辑下拉框
官方公共微信&我们在开发Android应用中,登录和注册界面是少不了的,往往在做登录注册的时候如果给界面加一个LOGO,就有可能把用户名和密码框放在手机屏幕的中间或底部,这样当软键盘弹出的时候,就有可能挡住输入框(往往用户输完用户名和密码还要按返回键盘才能登录),这样用户体验是不好的,我曾今也为这种事情很头疼。首先说一下我原来想到过的解决办法:
& && &一、原来想到过的解决办法:
& & (1)、把登录和输入框让美工做在顶部,不要用LOGO图片类似于淘宝客户端(如下图):这样键盘弹出就不会影响到输入框,但是这样始终不是解决问题的方法(我原来常常让美工设计登录不要设计登录LOGO,呵呵比较自私)
(2)、在布局根结点中加入ScrollView结点,这样当看不见输入框的时候手动滚一下就可以看到,这种方法也可行
(3)、自己给View做一个平移动画,然后处理键盘弹出和消失view的移动,这种设计比较麻烦,而且当View移动了以后要重新计算View的坐标位置,否则拿不到控件的监听事件(表面上看View是移动了,可是移动的只是图片,View上面控件的事件还在原来的位置,比较郁闷)。
(4)、重写RelativeLayout获取当前屏幕高度,实现onMesure、onSizeChanged方法来实现。废话不多说,我们今天采用第(4)种比较正规的方法来实现QQ空间登录页,先上图,无图无真相:以下分别是键盘没有弹出,和键盘弹出时登录情形(以下是我仿写的,布局用的就是QQ空间的布局)
二、实现代码(1)、重写RelatvieLayout(自定义View),实现onMesure、onSizeChanged方法。
package com.jun.
import android.app.A
import android.content.C
import android.util.AttributeS
import android.view.D
import android.widget.RelativeL
* @author junjun
* 自定义布局解决键盘弹出挡住输入框的问题
public class InputMethodRelativeLayout extends RelativeLayout {
& && &&&protected OnSizeChangedListenner onSizeChangedL
& && &&&private boolean sizeChanged&&= //变化的标志
& && &&&private int screenW //屏幕宽度
& && &&&private int screenH //屏幕高度
& && &&&public InputMethodRelativeLayout(Context paramContext,
& && && && && && && && &AttributeSet paramAttributeSet) {
& && && && && & super(paramContext, paramAttributeSet);
& && && && && & Display localDisplay = ((Activity) paramContext).getWindowManager()
& && && && && && && && && && &&&.getDefaultDisplay();
& && && && && & this.screenWidth = localDisplay.getWidth() ;
& && && && && & this.screenHeight = localDisplay.getHeight();
& && &&&public InputMethodRelativeLayout(Context paramContext,
& && && && && && && && &AttributeSet paramAttributeSet, int paramInt) {
& && && && && & super(paramContext, paramAttributeSet, paramInt);
& && &&&@Override
& && &&&protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
& && && && && & this.width = widthMeasureS
& && && && && & this.height = heightMeasureS
& && && && && & super.onMeasure(widthMeasureSpec, heightMeasureSpec);
& && &&&@Override
& && &&&public void onSizeChanged(int w, int h, int oldw,
& && && && && && && && &int oldh) {
& && && && && & //监听不为空、宽度不变、当前高度与历史高度不为0&
& && && && && & if ((this.onSizeChangedListenner!= null) && (w == oldw) && (oldw != 0)
& && && && && && && && && && &&&&& (oldh != 0)) {
& && && && && && && && &if ((h &= oldh)
& && && && && && && && && && && && && & || (Math.abs(h - oldh) &= 1 * this.screenHeight / 4)) {
& && && && && && && && && && &&&if ((h &= oldh)
& && && && && && && && && && && && && && && && &|| (Math.abs(h - oldh) &= 1 * this.screenHeight / 4))
& && && && && && && && && && && && && &
& && && && && && && && && && &&&this.sizeChanged&&=
& && && && && && && && &} else {
& && && && && && && && && && &&&this.sizeChanged&&=
& && && && && && && && &}
& && && && && && && && &this.onSizeChangedListenner.onSizeChange(this.sizeChanged ,oldh, h);
& && && && && && && && &measure(this.width - w + getWidth(), this.height
& && && && && && && && && && && && && & - h + getHeight());
& && && && && & }
& && &&&/**
& && && &* 设置监听事件
& && && &* @param paramonSizeChangedListenner
& && && &*/
& && &&&public void setOnSizeChangedListenner(
& && && && && && && && &InputMethodRelativeLayout.OnSizeChangedListenner paramonSizeChangedListenner) {
& && && && && & this.onSizeChangedListenner = paramonSizeChangedL
& && &&&/**
& && && &* 大小改变的内部接口
& && && &* @author junjun
& && && &*
& && && &*/
& && &&&public abstract interface OnSizeChangedListenner {
& && && && && & public abstract void onSizeChange(boolean paramBoolean, int w,int h);
然后把以上布局引入到自己的xml布局中。如QQ空间的登录布局activity_main.xml
&?xml version=&1.0& encoding=&utf-8&?&
&com.jun.qqzomelogin.InputMethodRelativeLayout xmlns:android=&/apk/res/android&
& & android:id=&@id/loginpage&
& & android:layout_width=&fill_parent&
& & android:layout_height=&fill_parent&
& & android:background=&@drawable/qz_bitmap_login& &
& & &LinearLayout
& && &&&android:id=&@id/login_container&
& && &&&android:layout_width=&fill_parent&
& && &&&android:layout_height=&wrap_content&
& && &&&android:gravity=&center&
& && &&&android:orientation=&vertical&
& && &&&android:paddingLeft=&15.0dip&
& && &&&android:paddingRight=&15.0dip& &
& && && && && & &!-- 大logo --&
& && &&&&LinearLayout
& && && && &android:id=&@id/login_logo_layout_v&
& && && && &android:layout_width=&wrap_content&
& && && && &android:layout_height=&wrap_content&
& && && && &android:layout_marginBottom=&34.0dip&
& && && && &android:layout_marginTop=&43.0dip&
& && && && &android:orientation=&vertical& &
& && && && &&ImageView
& && && && && & android:id=&@id/login_logoimg&
& && && && && & android:layout_width=&125.0dip&
& && && && && & android:layout_height=&125.0dip&
& && && && && & android:adjustViewBounds=&true&
& && && && && & android:gravity=&center&
& && && && && & android:src=&@drawable/logo_login& /&
& && && && &&ImageView
& && && && && & android:layout_width=&125.0dip&
& && && && && & android:layout_height=&35.0dip&
& && && && && & android:layout_marginTop=&10.0dip&
& && && && && & android:adjustViewBounds=&true&
& && && && && & android:gravity=&center&
& && && && && & android:src=&@drawable/qz_icon_logo_word_login& /&
& && &&&&/LinearLayout&
& && && && && & &!-- 小LOGO --&
& && &&&&LinearLayout
& && && && &android:id=&@id/login_logo_layout_h&
& && && && &android:layout_width=&fill_parent&
& && && && &android:layout_height=&wrap_content&
& && && && &android:layout_marginBottom=&11.0dip&
& && && && &android:layout_marginTop=&16.0dip&
& && && && &android:gravity=&left|center&
& && && && &android:orientation=&horizontal&
& && && && &android:visibility=&gone& &
& && && && &&ImageView
& && && && && & android:layout_width=&42.0dip&
& && && && && & android:layout_height=&42.0dip&
& && && && && & android:adjustViewBounds=&true&
& && && && && & android:gravity=&center&
& && && && && & android:src=&@drawable/logo_login& /&
& && && && &&ImageView
& && && && && & android:layout_width=&93.0dip&
& && && && && & android:layout_height=&30.0dip&
& && && && && & android:layout_marginLeft=&5.0dip&
& && && && && & android:adjustViewBounds=&true&
& && && && && & android:src=&@drawable/qz_icon_logo_word_login& /&
& && &&&&/LinearLayout&
& && &&&&FrameLayout
& && && && &android:layout_width=&fill_parent&
& && && && &android:layout_height=&45.0dip& &
& && && && &&EditText
& && && && && & android:id=&@id/qqId&
& && && && && & android:layout_width=&fill_parent&
& && && && && & android:layout_height=&fill_parent&
& && && && && & android:background=&@drawable/qz_bg_container_cell_top_normal&
& && && && && & android:hint=&QQ号/手机号/邮箱&
& && && && && & android:inputType=&textEmailAddress&
& && && && && & android:maxLength=&50&
& && && && && & android:paddingLeft=&15.0dip&
& && && && && & android:paddingRight=&80.0dip&
& && && && && & android:singleLine=&true&
& && && && && & android:text=&&
& && && && && & android:textColor=&#ff000000&
& && && && && & android:textColorHint=&#ffbbbbbb&
& && && && && & android:textSize=&16.0dip& /&
& && && && &&ImageView
& && && && && & android:id=&@id/uin_close&
& && && && && & android:layout_width=&30.0dip&
& && && && && & android:layout_height=&45.0dip&
& && && && && & android:layout_gravity=&right|center&
& && && && && & android:layout_marginRight=&40.0dip&
& && && && && & android:background=&@android:color/transparent&
& && && && && & android:clickable=&true&
& && && && && & android:scaleType=&center&
& && && && && & android:src=&@drawable/qz_icon_close&
& && && && && & android:visibility=&invisible& /&
& && && && &&ImageView
& && && && && & android:id=&@id/selectId&
& && && && && & android:layout_width=&40.0dip&
& && && && && & android:layout_height=&45.0dip&
& && && && && & android:layout_gravity=&right|center&
& && && && && & android:background=&@android:color/transparent&
& && && && && & android:clickable=&true&
& && && && && & android:paddingLeft=&5.0dip&
& && && && && & android:paddingRight=&15.0dip&
& && && && && & android:scaleType=&center&
& && && && && & android:src=&@drawable/qz_icon_navbar_drop_down& /&
& && &&&&/FrameLayout&
& && &&&&FrameLayout
& && && && &android:layout_width=&fill_parent&
& && && && &android:layout_height=&45.0dip& &
& && && && &&EditText
& && && && && & android:id=&@id/passWord&
& && && && && & android:layout_width=&fill_parent&
& && && && && & android:layout_height=&45.0dip&
& && && && && & android:background=&@drawable/qz_bg_container_cell_bottom_normal&
& && && && && & android:hint=&密码&
& && && && && & android:inputType=&textPassword&
& && && && && & android:maxLength=&16&
& && && && && & android:paddingLeft=&15.0dip&
& && && && && & android:paddingRight=&15.0dip&
& && && && && & android:singleLine=&true&
& && && && && & android:textColor=&#ff000000&
& && && && && & android:textColorHint=&#ffbbbbbb&
& && && && && & android:textSize=&16.0dip& /&
& && && && &&ImageView
& && && && && & android:id=&@id/psw_close&
& && && && && & android:layout_width=&30.0dip&
& && && && && & android:layout_height=&45.0dip&
& && && && && & android:layout_gravity=&right|center&
& && && && && & android:layout_marginRight=&15.0dip&
& && && && && & android:background=&@android:color/transparent&
& && && && && & android:clickable=&true&
& && && && && & android:scaleType=&center&
& && && && && & android:src=&@drawable/qz_icon_close&
& && && && && & android:visibility=&invisible& /&
& && &&&&/FrameLayout&
& && &&&&Button
& && && && &android:id=&@id/login_btn&
& && && && &android:layout_width=&fill_parent&
& && && && &android:layout_height=&45.0dip&
& && && && &android:layout_marginTop=&12.0dip&
& && && && &android:background=&@drawable/qz_selector_login&
& && && && &android:text=&登 录&
& && && && &android:textColor=&#ffffffff&
& && && && &android:textSize=&20.0dip& /&
& & &/LinearLayout&
& & &ImageButton
& && &&&android:id=&@id/lineimg&
& && &&&android:layout_width=&fill_parent&
& && &&&android:layout_height=&1.0px&
& && &&&android:layout_above=&@id/reg_and_forget_password_layout&
& && &&&android:background=&#ffcfcfcf& /&
& & &LinearLayout
& && &&&android:id=&@id/reg_and_forget_password_layout&
& && &&&android:layout_width=&fill_parent&
& && &&&android:layout_height=&49.0dip&
& && &&&android:layout_alignParentBottom=&true&
& && &&&android:layout_alignParentRight=&true&
& && &&&android:orientation=&horizontal& &
& && &&&&Button
& && && && &android:id=&@id/forget_password_tv&
& && && && &android:layout_width=&0.0dip&
& && && && &android:layout_height=&fill_parent&
& && && && &android:layout_weight=&1.0&
& && && && &android:autoLink=&all&
& && && && &android:background=&@drawable/qz_selector_gray&
& && && && &android:gravity=&center&
& && && && &android:text=&找回密码&
& && && && &android:textColor=&#ff666666&
& && && && &android:textSize=&14.0dip& /&
& && &&&&ImageButton
& && && && &android:layout_width=&1.0px&
& && && && &android:layout_height=&fill_parent&
& && && && &android:background=&#ffcfcfcf& /&
& && &&&&Button
& && && && &android:id=&@id/reg_tv&
& && && && &android:layout_width=&0.0dip&
& && && && &android:layout_height=&fill_parent&
& && && && &android:layout_weight=&1.0&
& && && && &android:autoLink=&all&
& && && && &android:background=&@drawable/qz_selector_gray&
& && && && &android:gravity=&center&
& && && && &android:text=&新注册&
& && && && &android:textColor=&#ff666666&
& && && && &android:textSize=&14.0dip& /&
& & &/LinearLayout&
&/com.jun.qqzomelogin.InputMethodRelativeLayout&
(2)、在Activity中实现OnSizeChangedListener,原理是设置该布局的paddingTop属性来控制子View的偏移。
package com.jun.
import android.app.A
import android.os.B
import android.view.V
import android.widget.LinearL
import com.jun.qqzomelogin.InputMethodRelativeLayout.OnSizeChangedL
* @author junjun
public class MainActivity extends Activity implements OnSizeChangedListenner{
& && &&&private InputMethodRelativeL&&
& & private LinearL
& & private LinearLayout login_logo_layout_
& & private LinearLayout login_logo_layout_
& && &&&@Override
& && &&&protected void onCreate(Bundle savedInstanceState) {
& && && && && & super.onCreate(savedInstanceState);
& && && && && & setContentView(R.layout.activity_main);
& && && && && & //取得InputMethodRelativeLayout组件
& && && && && & layout = (InputMethodRelativeLayout) this.findViewById(R.id.loginpage) ;
& && && && && & //设置监听事件
& && &&&layout.setOnSizeChangedListenner(this) ;
& && &&&//取得大LOGO布局
& && &&&login_logo_layout_v = (LinearLayout) this.findViewById(R.id.login_logo_layout_v) ;
& && &&&//取得小LOGO布局
& && &&&login_logo_layout_h = (LinearLayout) this.findViewById(R.id.login_logo_layout_h) ;
& && &&&//取得找回密码和新注册布局
& && &&&boot = (LinearLayout) this.findViewById(R.id.reg_and_forget_password_layout) ;
& && &&&/**
& && && &* 在Activity中实现OnSizeChangedListener,原理是设置该布局的paddingTop属性来控制子View的偏移
& && && &*/
& && &&&@Override
& && &&&public void onSizeChange(boolean flag,int w ,int h) {&&
& && &&&if(flag){//键盘弹出时
& && && && &layout.setPadding(0, -10, 0, 0);& &
& && && && &boot.setVisibility(View.GONE) ;
& && && && &login_logo_layout_v.setVisibility(View.GONE) ;
& && && && &login_logo_layout_h.setVisibility(View.VISIBLE) ;
& && &&&}else{ //键盘隐藏时
& && && && &layout.setPadding(0, 0, 0, 0);&
& && && && &boot.setVisibility(View.VISIBLE) ;
& && && && &login_logo_layout_v.setVisibility(View.VISIBLE) ;
& && && && &login_logo_layout_h.setVisibility(View.GONE) ;
注意:在AndroidManifest.xml中注册该Activity,需要注意的是:必须为该Activity设置android:windowSoftInputMode=&adjustResize&属性,当windowSoftInputMode为adjustResiz时,Layout才会调用protected
void onSizeChanged(int w, int h, int oldw, int oldh)这个方法,而且不能是全屏。好了就到这里,希望对你有帮助Android PopupWindow实战仿QQ底部弹出
Android提供两种对话框形式,一种是popupwindow,一种是dialog,先为大家说明一下两者的区别。
位置:AlertDialog的位置固定,而PopupWindow的位置可以随意。
showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移。
showAsDropDown(View anchor, int xoff, int yoff):相对某个控件的位置,有偏移
showAtLocation(View parent, int gravity, int x, int y):相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移
线程:AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的。
第一个案例
讲解一下重要的代码部分,稍后我会讲源码发出去供大家下载。
简单的案例,大家先看一下代码
public class MyPopupWindow extends PopupWindow {
private Button btn_take_photo, btn_pick_photo, btn_
private View mMenuV
public MyPopupWindow(Activity context, OnClickListener itemsOnClick) {
super(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMenuView = inflater.inflate(R.layout.alert_dialog, null);
btn_take_photo = (Button) mMenuView.findViewById(R.id.btn_take_photo);
btn_pick_photo = (Button) mMenuView.findViewById(R.id.btn_pick_photo);
btn_cancel = (Button) mMenuView.findViewById(R.id.btn_cancel);
//取消按钮
btn_cancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//销毁弹出框
dismiss();
//设置按钮监听
btn_pick_photo.setOnClickListener(itemsOnClick);
btn_take_photo.setOnClickListener(itemsOnClick);
this.setContentView(mMenuView);
this.setWidth(LayoutParams.FILL_PARENT);
this.setHeight(LayoutParams.WRAP_CONTENT);
this.setFocusable(true);
this.setTouchable(true);
this.setAnimationStyle(R.style.PopupAnimation);
ColorDrawable dw = new ColorDrawable(Color.TRANSPARENT);
this.setBackgroundDrawable(dw);
//mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
mMenuView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int height = mMenuView.findViewById(R.id.pop_layout).getTop();
int y = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_UP) {
if (y & height) {
dismiss();
}看一下MainActivity的实现
public class MainActivity extends Activity {
//自定义的弹出框类
MyPopupWindow menuW
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tv = (TextView) this.findViewById(R.id.text);
//把文字控件添加监听,点击弹出自定义窗口
tv.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
menuWindow = new MyPopupWindow(MainActivity.this,itemsOnClick);
//显示窗口
menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); //设置layout在PopupWindow中显示的位置
//为弹出窗口实现监听类
private OnClickListener itemsOnClick = new OnClickListener() {
public void onClick(View v) {
menuWindow.dismiss();
switch (v.getId()) {
case R.id.btn_take_photo:
case R.id.btn_pick_photo:
下载Demo请猛戳
第二个案例
①.如上图所示在构造PopupWindow的实例时,制定它的宽度是button的宽度,如下代码
PopupWindow popu = new PopupWindow(mPopup, btn.getWidth(), ViewGroup.LayoutParams.WRAP_CONTENT);②.点击外部时,当前PopupWindow就消失,如下代码
popu.setOutsideTouchable(true);③.设置PopupWindow可以获取焦点
popu.setFocusable(true);④.调用显示位置的showAtLocation方法
int[] location = new int[2];
btn.getLocationOnScreen(location);
popu.showAtLocation(btn, Gravity.NO_GRAVITY, location[0], location[1] + btn.getHeight());下载Demo请猛戳
第三个案例
关键是在ListView的Adapter中对popupwindow的处理
在构建Adapter实例的时候,初始化popupwindow,并显示
* 初始化popWindow
private void initPopWindow() {
View popView = inflater.inflate(R.layout.listview_pop, null);
popupWindow = new PopupWindow(popView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(new ColorDrawable(0));
//设置popwindow出现和消失动画
popupWindow.setAnimationStyle(R.style.PopMenuAnimation);
btn_pop_close = (ImageView) popView.findViewById(R.id.btn_pop_close);
* 显示popWindow
public void showPop(View parent, int x, int y, int postion) {
//设置popwindow显示位置
popupWindow.showAtLocation(parent, Gravity.AXIS_X_SHIFT, x, y);
//获取popwindow焦点
popupWindow.setFocusable(true);
//设置popwindow如果点击外面区域,便关闭。
popupWindow.setOutsideTouchable(true);
popupWindow.update();
if (popupWindow.isShowing()) {
popupWindow.dismiss();
btn_pop_close.setOnClickListener(new OnClickListener() {
public void onClick(View paramView) {
popupWindow.dismiss();
}下载Demo请猛戳
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
使用Activity和PopupWindow都实现从底部弹出或滑出选择菜单或窗口 [Android]测试与popwindow PopupWindow转载自:Android PopupWindow实现从底部弹出或滑出选择菜单或窗口
Android PopupWindow的使用和分析
Popupwindow的使用 ...
有时在页面加载的时候,需要在页面的弹出一个小的提示框,显示一些提示信息给用户,通过使用jQuery的message插件,可以很方便的实现这个效果,在使用之前先介绍一下message插件中的方法的使用. 1.$.messager.lays(width, height); 该方法主要用来定义弹出窗口的宽度和高度.
2.$.messager.anim(ty ...
下载地址:http://download.csdn.net/detail/ldd119/7440895 转载请说明出处 先上个效果图 第一步:先自定义一个View package com.wheel. import java.util.LinkedL import java.util.L import java.util.log ...
本片文章主要谈探讨了如何实现在底部弹出提示框背景为半透明效果的实现.想要实现此种效果一般有两种方式一个是使用Activity设置Theme另一种方式就是使用PopupWindow设置样式实现效果. 一,使用Activity 首先是此activity的布局文件: &?xml version=&1.0& encoding=&u ...
本实例弹出窗口主要是继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计.弹出效果主要使用了translate和alpha样式实现,具体实习如下: 第一步:设计弹出窗口xml:
&?xml version=&1.0& encoding=&utf-8&?&
&Android底部弹出iOS7风格对话选项框& 效果图如下: 网上流传的Android底部弹出iOS7风格的对话选项框开源代码,原作者不详.我在网上流传的代码基础上改进了一些地方,把原来作为Application发布的代码整理成一个Android的Library,如果在未来的Android项目中需要这样的对话选项框样式,则只需要下载我上次到CS ...
这篇文章主要介绍了Android仿QQ滑动弹出菜单标记已读.未读消息的相关资料,需要的朋友可以参考下在上一篇&Android仿微信滑动弹出编辑.删除菜单效果.增加下拉刷新功能&里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接下来,将进一步学习,如何为不同的list item呈现不同的菜单,此处我们做 ...
我们都知道Activity默认的切换方式都是左右切换的,下面我们就来学习一下上下式切换的activity.废话不多说,先上图,无图无真相.以下分别是原始状态和activity弹出状态.
一.下面说一下实现思路,当然这个切换方式有好多种实现方式,我这里就说我长用的一种方式,其它方式有兴趣的朋友们可以息行研究一下.我们可以用activity的样式来控制act ...}

我要回帖

更多关于 弹出框组件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信