Android中PopupWindow开发遇到的若干问题
来源:互联网 发布:淘宝房屋司法拍卖平台 编辑:程序博客网 时间:2024/06/05 00:47
不是博主不努力,只是问题特别多。就是一个小小的PopupWindow,我竟然也折腾了一下午。但是收获也不少。
1、适合的场景
PopupWindow因为样式灵活,可以控制显示位置,非常方面用来做弹出窗口,这次我做的是一个仿下拉菜单效果的弹窗。效果如下图:
效果很简单但是主要有两个问题
1、如何实现自适应的带箭头的下拉框。
2、如何点击选项后将值传入到启动的Activity中。
下面是我在编码时遇到的问题:
总体思路是:通过继承PopupWindow类自定义扩展的PopupWindow。用.9.png格式的图片文件做为背景图片,.9.png各试点额图片可以设置拉伸区域和文字区域,这样就可以保证箭头不被拉伸。在自定义的Pop...类中,声明一个接口,在Activity中实现该接口,列表条目注册单击事件执行Activity中实现的接口。
遇到的问题:
1、开始的时候设置PopupWindow中Layout的背景图片,发现有背景色,开始没想到这个背景色是PopupWindow的背景色(PopupWindow不等同于其中的Layout,只有Layout与之大小一致,且Layout的背景颜色或图片不透明时Layout完全覆盖PopupWindow背景),同理Layout也不等同于Activity的背景色。
所以 用PopupWindow.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.dropdown));设置PopupWindow的背景色。
2、折磨人的.9.png,解决好背景色的问题后又迎来了一个新的问题
PopupWindow中只有左边显示文字,右边空着,开始以为是Layout的问题,把所有的Layout写死固定长度,可这个问题就像幽灵似得存在,各种折磨各种煎熬。各种尝试解决办法,最后当我替换背景图为普通图时,全部显示出来了,所以问题定位到了.9.png上了。
这时候才想起来:编辑.9.png的时候忘记指定文字显示区域了,(其实开始没忘,后来去黑边的时候给去掉了,忘记了)
结论:.9.png一定要加上编辑区域!!
PS xxx.9.png是用Android SDK提供的工具将普通png编辑成可以指定区域拉伸的特殊png。两者的变化就是在.9.png图片边上有一像素宽的边线,左边和上边表示可拉伸区域,下边和右边表示的是文字显示区域。
- Android中PopupWindow开发遇到的若干问题
- android编程中容易遇到的若干问题
- android编程中容易遇到的若干问题
- Android应用开发环境搭建遇到的若干问题
- 编写短信网关验证开发中遇到的若干问题
- 安装android遇到的若干问题
- android 学习中遇到的若干问题和解决方法(1)
- Node.js HTTP开发遇到的若干问题
- Node.js HTTP开发遇到的若干问题
- android开发adb的若干问题
- Hibernate应用中遇到的若干问题
- MySQL 查询中遇到的若干问题
- Android中popupwindow弹出灰色背景遇到的坑
- Android中popupwindow弹出灰色背景遇到的坑
- 有关Libssh2的Win32程序开发中遇到的若干问题的汇总 .
- js遇到的若干问题
- php中ssl开发的若干问题
- android开发若干问题
- 2013 CocoaChina微信精选之技术汇
- 传感器转型 国内传感器应用市场不断扩大
- EBS Form中查询(Query)模式的操作符总结
- 关于元数据(Metadata) -- 菜鸟篇
- latex 编译加速 增量编译
- Android中PopupWindow开发遇到的若干问题
- win7访问远端Windows Server 2008R2消息队列拒绝
- 马云马化腾等IT大佬都毕业于什么大学
- Makefile用法,详细到让人吐
- 盘点2013:21款最优秀的开源数据库
- 商务领航的网关问题解决
- Prezi 桌面版安装后不能正常登陆的解决办法
- MFC Dialog stype
- Bluetooth Smart技术推动可穿戴设备在2014年增长67%