android全屏dialog
Ⅰ android 如何让自定义dialog的宽度充满整个屏幕
方案:
通过设置Dialog的样式实现
步骤:
java">1、添加style
<stylename="Dialog_FS">
<itemname="android:windowFullscreen">true</item>
<itemname="android:windowNoTitle">true</item>
</style>
2、代码里面设置dialog的样式
Dialogdialog=newDialog(this,R.style.Dialog_FS);//设置全屏样式
dialog.setContentView(R.layout.main);//设置dialog的布局
dialog.show();//显示dialog界面
Ⅱ Android 全局弹窗(Dialog)快速实现
项目中 云信IM同一帐号,在多处登录时,要实现互踢功能。
在收到被踢通知时,弹窗提示用户被踢,点击继续跳转到登录界面,取消则关闭App
由于不知道用户会在哪个界面操作时被踢,接受通知的那个Activity有可能已经失去上下文,导致空指针异常!从而无法 Toast 或 弹窗。
能实现 全局Dialog 就好了!
由于退出App的时候,要清除之前所有的Activity,其实就是退出登录功能。
我采用 集合法 来实现的退出登录 ,在BaseActivity中记录所有打开过的Activity,然后遍历清除。
然后在 BaseActivity 中调用 addActivity() ,不在赘述!
如果能获取到用户当前观看的界面,然后将上下文传过去,就可以实现全局Dialog
当前页面也就是栈顶Activity,也就是最后添加的那个Activity。如下:
然后在使用的地方获取
即:
注意:之所以返回AppCompatActivity,而不是Activity,
是因为弹出Dialog 需要 supportFragmentManager ,Activity 获取不到
以上就可以实现全局Dialog了。
另外,上述Dialog是用DialogFragment写的,感兴趣可阅 《DialogFragment 去除内容区棱角背景(不规则圆角)》 ,附有工具类及用法。
Ⅲ 【Android】自定义全屏dialog
一、在themes.xml中添加自定义dialog的样式
二、创建dialog基类
三、创建自定义dialog的布局
四、创建自定义dialog
五、在activity中使用自定义dialog
Ⅳ Android Dialog 设置Margin方式总结
在日常开发中,总是会遇到各种Dialog的使用,调整根据UI设计的不同,会经常调整Dialog在屏幕中的位置,这篇文章主要介绍,在使用 DialogFragment 时设置Margin的几种方式。
如下是最后实现的效果:
设置两边margin效果:
设置顶部margin效果:
全屏的Dialog设置顶部Margin:
这个比较容易,主要就是设置一个高度wrap_content,宽度match_parent的dialog,然后在dialog的布局中设置margin就可以了。
如下是xml文件:
然后在DialogFragment的onResume里对Window做一些处理:
这种情况margin可以通过 WindowManager.LayoutParams 的 verticalMargin 属性来实现。 verticalMargin 和xml里面设置的layout_margin不一样, verticalMargin 是通过设置一个0-1的float变量,来标识margin在屏幕中的占比。
如下是在DialogFragment的onResume中的处理:
xml文件(和1的类似,没有什么特别):
这里如果使用2中的方法,没有任何效果。这里使用另外一种方式实现-- insetDrawable 。
这里的实现是在xml里面写一个 <inset> :
在DialogFragment的onResume方法中: