首页 > Android在屏幕任意位置显示对话框

Android在屏幕任意位置显示对话框

为什么80%的码农都做不了架构师?>>>   hot3.png

下面是设置对话框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.ExportedPropertypublic 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.ExportedPropertypublic int y;

重要的两点就是:

 (1)如果你需要设置x的值,那么需要将gravity设置有LEFT,START,RIGHT或者END。

  (2)如果你需要设置y的值,那么需要将gravity设置成有TOP,BOTTOM。

上面的两点,如果你的对FrameLayout设置的margin不起作用了,可能也是需要遵守上面两点规则。





转载于:https://my.oschina.net/banxi/blog/102995

更多相关:

  • 问题描述 centos7虚拟机如何设置开机自启动网络设置 解决方法 切换到root用户进入到网络设置的目录下面cd /etc/sysconfig/network-scripts/当前目录下面有一个类似于ifcfg-ens33,使用vim打开文件进行编辑,将ONBOOT=no修改成为yes就可以了...

  •  摘自https://zhidao.baidu.com/question/983204331427010139.html java中如何设置Jtabbedpane为透明 20在Jtabbedpane下有背景图片,如何设置让他透明呢?0oo宝贝xxX | 浏览 1147 次 |举报我有更好的答案 2014-12-30最佳答案你好,你可以...

  •   本文全文参考:http://jingyan.baidu.com/album/4e5b3e1957979d91901e24f1.html?picindex=1,谢谢        对于很多的linux初学者来说,最开始学习linux时通常是在虚拟机上进行的,然而对于新手来说虚拟机联网会对他们来说是比较困难的。这里我根据自己的经验写了...

  • 转载自:http://www.chinaz.com/web/2015/0424/401323.shtml   大多数的Nginx安装指南告诉你如下基础知识——通过apt-get,或yum安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然...

  • 1.先去qq邮箱,设置,账户 开启pop3服务,假如之前开启过,最好关闭之后重新开启 最新版本的必须使用邮箱的独立密码才可以收取邮件 (否则就算你之前开通了,也无法用你的qq账号和密码收取邮件的)   2.高级设置里面,需要勾选ssl加密,pop3端口设置为995 另外,记得不要同步删除邮件服务器的邮件 http://jingyan....