一.摘要
一个PopupWindow对象可以用于展示随意的view,是一个浮动的容器位于当前activity的顶部,可以设置AlertDialog弹窗效果,可以参考《自定义弹窗 VS AlertDialog分享弹窗》。
二.简单的PopupWindow使用
Demo设计一个底部弹窗窗口,选择绑定银行卡开户行,有点像微信绑定银行卡窗口,选择开户行后,弹窗消失,继续下一步操作。
知识点:
1.如何PopupWindow对象创建?创建PopupWindow有多种方式,最后一种同时指定PopupWindow布局,默认窗口的宽/高和是否获取焦点属性
- // 创建PopupWindow实例,200,LayoutParams.MATCH_PARENT分别是宽度和高度
- popupWindow = new PopupWindow(popupWindow_view, ViewGroup.LayoutParams.MATCH_PARENT, 200, true);
2.如何PopupWindow窗口位置?PopupWindow提供的showAtLocation(View parent,int gravity,int x,int y)方法设置窗口位置
parent:依附的父容器视图View
gravity:指定Gravity.LEFT,Gravity.TOP,Gravity.RIGHT,Gravity.BOTTOM,弹窗的位置
x:弹窗相对X轴的偏移量
y:弹窗相对Y轴的偏移量
- popupWindow.showAtLocation(v, Gravity.BOTTOM, 0, 0);
3.如何PopupWindow窗口动画?使用setAnimationStyle(int animationStyle)
animationStyle:PopupWindow出现和消失的动画样式,-1表示默认动画样式,0表示木有动画,或者引用一个自定义动画资源
这里引用了一个自定义滑动资源,设置窗体进入动画android:windowEnterAnimation和窗体退出动画android:windowExitAnimation,关于动画的详细介绍,可以参考《Android代码绘制虚线、圆角、渐变和阴影效果图》
- <style name="AnimationFade">
- <!-- PopupWindow左右弹出的效果 -->
- <item name="android:windowEnterAnimation">@anim/in_lefttoright</item>
- <item name="android:windowExitAnimation">@anim/out_righttoleft</item>
- </style>
- popupWindow.setAnimationStyle(R.style.AnimationFade);
4.如何PopupWindow布局?在知识点1中的popupWindow_view定义的布局,这里展示银行开卡行名称,添加了ListView控件,关联的数据items数组
- String[] items= BankInfo.bankName;
- ArrayAdapter mAdapter=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,items);
- mListView.setAdapter(mAdapter);
你可能感兴趣的文章
转载请注明出处: https://www.teachcourse.cn/1873.html ,谢谢支持!