Android -- PopupWindow
PopupWindow的隐藏
final PopupWindow window = mPageStatWin; if(null != window && window.isShowing()) { win.dismiss(); }
PopupWindow的显示及位置设置
window.showAtLocation(parent, Gravity.RIGHT | Gravity.BOTTOM, 10,10);
第一个参数指定PopupWindow的锚点view,即依附在哪个view上。
第二个参数指定起始点为parent的右下角,第三个参数设置以parent的右下角为原点,向左、上各偏移10像素。
//将PopupWindow作为anchor的下拉窗口显示。即在anchor的左下角显示 window.showAsDropDown(anchor); //xoff,yoff基于anchor的左下角进行偏移。 window.showAsDropDown(anchor, xoff, yoff);
如果没有充足的空间显示PopupWindow,那么PopupWindow的左下角将位于anchor的左上角来显示。
创建PopouWindow及相关参数设置
//创建一个包含自定义view的PopupWindow private PopupWindow makePopupWindow(Context cx) { PopupWindow window; window = new PopupWindow(cx); TextView contentView = new TextView(cx); contentView.setGravity(Gravity.CENTER); final Resources res = cx.getResources(); // contentView.setBackgroundColor(R.color.page_window_bgcolor); // window.setBackgroundDrawable(new // ColorDrawable(res.getColor(R.color.page_window_bgcolor))); contentView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); //设置PopupWindow显示和隐藏时的动画 window.setAnimationStyle(R.style.AnimationFade); //设置PopupWindow的大小(宽度和高度) window.setWidth(res.getDimensionPixelSize(R.dimen.page_window_width)); window.setHeight(res.getDimensionPixelSize(R.dimen.page_window_height)); //设置PopupWindow的内容view window.setContentView(contentView); //设置PopupWindow外部区域是否可触摸 window.setOutsideTouchable(true); return window; }
PopupWindow显示和隐藏的动画设置
<!-- PopupWindow窗口淡入淡出动画 --> <style name="AnimationFade"> <item name="android:windowEnterAnimation">@anim/fade_in</item> <item name="android:windowExitAnimation">@anim/fade_out</item> </style>
window.setAnimationStyle(R.style.AnimationFade);
PopupWindow的焦点设置
window.setFocusable(true); //设置PopupWindow可获得焦点 window.setTouchable(true); //设置PopupWindow可触摸 window.setOutsideTouchable(true); //设置非PopupWindow区域可触摸
PopupWindow的显示及显示位置设置
window.showAtLocation(); window.showAsDropDown();
我是天王盖地虎的分割线
本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3991616.html,如需转载请自行联系原作者

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android -- VelocityTracker
VelocityTracker 主要应用于touch event, VelocityTracker通过跟踪一连串事件实时计算出当前的速度。 方法 //获取一个VelocityTracker对象, 用完后记得回收 //回收后代表你不需要使用了,系统将此对象在此分配到其他请求者 static public VelocityTracker obtain(); public void recycle(); //计算当前速度, 其中units是单位表示, 1代表px/毫秒, 1000代表px/秒, .. //maxVelocity此次计算速度你想要的最大值 public void computeCurrentVelocity(int units, float maxVelocity); //经过一次computeCurrentVelocity后你就可以用一下几个方法获取此次计算的值 //id是touch event触摸点的ID, 来为多点触控标识,有这个标识在计算时可以忽略 //其他触点干扰,当然干扰肯定是有的 public float getXVelocity(); public float ...
- 下一篇
Android -- taskAffinity
每个Activity都有taskAffinity属性,这个属性指出了它希望进入的Task。如果一个Activity没有显式的指明该Activity的taskAffinity,那么它的这个属性就等于Application指明的taskAffinity,如果Application也没有指明,那么该taskAffinity的值就等于包名。而Task也有自己的affinity属性,它的值等于它的根Activity的taskAffinity的值。 一开始,创建的Activity都会在创建它的Task中,并且大部分都在这里度过了它的整个生命。然而有一些情况,创建的Activity会被分配其它的Task中去,有的甚至,本来在一个Task中,之后出现了转移。我们首先分析一下android文档给我们介绍的两种情况。 One 如果该Activity的allowTaskReparenting设置为true,它进入后台,当一个和它有相同affinity的Task进入前台时,它会重新宿主,进入到该前台的task中。 我们验证一下这种情况。 Application Activity taskAffinity al...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2全家桶,快速入门学习开发网站教程
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音