Android PopupWindow水平偏移
2016-07-19 17:39
337 查看
在使用PopupWindow做右上角弹出菜单的时候
设置popupWindow.showAsDropDown(v,-10,14);发现水平偏移没效果
查阅资料发现 showAsDropDown 的对齐方式是v控件的左下角与popupWindow的控件左上角对齐
而popupWindow不会超出屏幕,所以显示效果是紧贴右边框。
小幅设置偏移量真实位置还是超出边框,窗口依旧会紧贴右边框,并不会看出有什么效果。
处理方法是
popupWindow.getContentView().measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED);
int i = popupWindow.getContentView().getMeasuredWidth();
获取到控件的宽度
popupWindow.showAsDropDown(v,j-i,14);
先除去控件的宽度,这样popupWindow的控件右上角和v控件的左下角是对齐的,然后在设置偏移量就可以正常显示了
此方法亦适用于右下角弹出
设置popupWindow.showAsDropDown(v,-10,14);发现水平偏移没效果
查阅资料发现 showAsDropDown 的对齐方式是v控件的左下角与popupWindow的控件左上角对齐
而popupWindow不会超出屏幕,所以显示效果是紧贴右边框。
小幅设置偏移量真实位置还是超出边框,窗口依旧会紧贴右边框,并不会看出有什么效果。
处理方法是
popupWindow.getContentView().measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED);
int i = popupWindow.getContentView().getMeasuredWidth();
获取到控件的宽度
popupWindow.showAsDropDown(v,j-i,14);
先除去控件的宽度,这样popupWindow的控件右上角和v控件的左下角是对齐的,然后在设置偏移量就可以正常显示了
此方法亦适用于右下角弹出
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories