Android在屏幕任意位置显示对话框
16lz
2021-01-23
下面是设置对话框x的偏移量。
int marginLeft = 100;Window window = getDialog().getWindow();WindowManager.LayoutParams wmlp =window.getAttributes();wmlp.gravity = Gravity.LEFT;wmlp.x = marginLeft;Log.i(getTag(), "wmlp="+wmlp);window.setAttributes(wmlp);
值得注意的是: 我们要看看WindowManager.LayoutParams的文档中关于x,y属性的说明:
/** * X position for this window. With the default gravity it is ignored. * When using {@link Gravity#LEFT} or {@link Gravity#START} or {@link Gravity#RIGHT} or * {@link Gravity#END} it provides an offset from the given edge. */ @ViewDebug.ExportedProperty public int x; /** * Y position for this window. With the default gravity it is ignored. * When using {@link Gravity#TOP} or {@link Gravity#BOTTOM} it provides * an offset from the given edge. */ @ViewDebug.ExportedProperty public int y;
重要的两点就是:
(1)如果你需要设置x的值,那么需要将gravity设置有LEFT,START,RIGHT或者END。
(2)如果你需要设置y的值,那么需要将gravity设置成有TOP,BOTTOM。
上面的两点,如果你的对FrameLayout设置的margin不起作用了,可能也是需要遵守上面两点规则。
更多相关文章
- Android开发之Activity(二)——启动模式和taskAffinity属性
- android:clipChildren属性的分析——是否剪裁子View
- Android 七种对话框使用
- ImageView的属性
- 【Android】Android自定义属性,attr format取值类型
- Android使用TextView,设置onClick属性无效解决办法
- Android自定义对话框列表