[Android] 自定义 Dialog 布局设置固定宽高无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Android] 自定义 Dialog 布局设置固定宽高无效相关的知识,希望对你有一定的参考价值。

参考技术A Dialog 的自定义布局的根布局的宽度是写固定的,显示的时候宽度和高度不是对应的固定值。

根布局外面又添加了一层 FrameLayout,设置其宽高均为 wrap_content 来包裹以前的布局。

这个时候猜测是否因为添加自定义视图的时候,布局参数被改写了,然后开始查看源码,最终发现确实是这样的。

在下面的源码分析中,最终发现也是用了 mWindow.setContentView(mAlertDialogLayout) 将 R.layout.alert_dialog.xml 的默认布局添加到 PhoneWindow, 和Activity一样的。

关键的地方看一下 setupCustomContent() 这个方法,在添加自定义视图的时候布局参数设置为 MATCH_PARENT 了,所以我们设置固定大小是没有作用的,要套一层父布局解决这个问题。

【Android】自定义全屏dialog

参考技术A 一、在themes.xml中添加自定义dialog的样式

二、创建dialog基类

三、创建自定义dialog的布局

四、创建自定义dialog

五、在activity中使用自定义dialog

以上是关于[Android] 自定义 Dialog 布局设置固定宽高无效的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义Android Dialog的样式?

Android 自定义AlertDialog--备忘

怎么自定义dialog样式

android将activity设置成自定义的Dialog怎么调整大小

Android自定义Dialog,炫酷主流的加载对话框

android dialog中软键盘遮挡输入编辑框edittextt