dialog居于底部并使得宽度占满整个屏幕宽度
来源:互联网 发布:万能数据恢复大师6.0 编辑:程序博客网 时间:2024/05/15 23:52
dialog居于底部并使得宽度占满整个屏幕宽度
在开发过程中遇到使用BottomShellDailog的时候,在竖屏情况下能够正常从底部弹起并处于底部,但是在横屏情况下它就显示不全了,找了很多方法都没解决,后来就修改方案,直接让我自定义的dialog继承系统的dialog,然后在自定义dialog show的时候调用以下方法,就完美解决了,全部代码如下:
自定义的dialog
class LivePullBackDialog(context: Context, private val onClickToBack:()-> Unit) : Dialog(context, R.style.loveshow_DialogStyleBottomTranslut) {// : BottomSheetDialog(context) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.dialog_live_back) window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) back.setOnClickListener { if (this.isShowing) { this.dismiss() } onClickToBack.invoke() } continues.setOnClickListener { if (this.isShowing) { this.dismiss() } } }}
dialog的style如下:
<?xml version="1.0" encoding="utf-8"?><resources> <style name="loveshow_AnimBottom" parent="@android:style/Animation.Translucent"> <item name="android:windowEnterAnimation">@anim/loveshow_push_bottom_in</item> <item name="android:windowExitAnimation">@anim/loveshow_push_bottom_out</item> </style> <style name="loveshow_DialogStyleBottomTranslut" parent="android:Theme.Dialog"> <item name="android:windowAnimationStyle">@style/loveshow_AnimBottom</item> <item name="android:windowFrame">@null</item> <!-- 边框 --> <item name="android:windowIsFloating">true</item> <!-- 是否浮现在activity之上 --> <item name="android:windowIsTranslucent">true</item> <!-- 半透明 --> <item name="android:windowNoTitle">true</item> <!-- 无标题 --> <item name="android:windowBackground">@android:color/transparent</item> <!-- 背景透明 --> <item name="android:backgroundDimEnabled">false</item> <!-- 模糊 --> </style></resources>
在使用的自定义dialog的地方使用如下代码:
mPullBackDialog.show() val window = mPullBackDialog.window if (window != null){ window.decorView.setPadding(0,0,0,0) var attr = window.attributes if (attr != null){ attr.height = ViewGroup.LayoutParams.WRAP_CONTENT attr.width = ViewGroup.LayoutParams.MATCH_PARENT attr.gravity = Gravity.BOTTOM } window.attributes = attr }
在mPullBackDialog.show()后面加这一段代码,可以实现从底部弹窗,并且占据整个屏幕宽度的对话框,因为我发现dialog 默认的样式@Android:style/Theme.Dialog 对应的style 有pading属性,所以
win.getDecorView().setPadding(0, 0, 0, 0); 就能够水平占满了在此记录之,以备重用。
后来发现直接使用如下方法就能解决问题:
class LivePullBackDialog(context: Context, private val onClickToBack:()-> Unit) : Dialog(context, R.style.loveshow_DialogStyleBottomTranslut) {// : BottomSheetDialog(context) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.dialog_live_back) window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) window.attributes.gravity = Gravity.BOTTOM back.setOnClickListener { if (this.isShowing) { this.dismiss() } onClickToBack.invoke() } continues.setOnClickListener { if (this.isShowing) { this.dismiss() } } }}
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
window.attributes.gravity = Gravity.BOTTOM
这两句话就能完美解决,不用再show后面加那几句代码
阅读全文
0 0
- dialog居于底部并使得宽度占满整个屏幕宽度
- dialog居于底部并使得宽度占满整个屏幕宽度
- (转)自定义Dialog宽度占满屏幕
- 自定义Dialog宽度占满屏幕
- Andorid dialog 宽度占屏幕宽度
- 216_实现width宽度充满占满屏幕的底部菜单dialog
- 在Android中让Preference的宽度占满整个屏幕的宽度
- 自定义dialog的宽度充满整个屏幕宽度的问题
- Dialog底部滑出并横向占满屏幕
- 解决:extjs2.0.2的日期空间在chrome下显示异常,宽度占满整个屏幕
- android 如何让自定义dialog的宽度充满整个屏幕
- android 使dialog的宽度充满整个屏幕
- 如何设置Dialog宽度为屏幕宽度
- android 设置dialog 宽度为屏幕宽度
- 自定义dialog宽度填充屏幕
- c#tabcontrol中的tabpage占的宽度一样,并占满tabcontrol的宽度
- Android实践-自定义dialog从屏幕底部弹出并且充满屏幕宽度
- Android自定义dialog从屏幕底部弹出并且充满屏幕宽度
- Hadoop学习笔记 --- MapReduce实现WorldCount原理解析
- jquery.validate 表单验证
- 有关数学的一些重要概念
- 455. Assign Cookies (贪心)
- Kaldi运行过程中遇到的一些问题(持续更新...)
- dialog居于底部并使得宽度占满整个屏幕宽度
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- ScheduledExecutorService
- Unity发布错误的可能性问题整理
- python编写hadoop代码
- 前端构建工具 Gulp.js 上手实例
- 从 npm 迁移到 Yarn
- 关于升级swif3.0的一些东西(续)
- C#定义系统常量的两种实现方法对比