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

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

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

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

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

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

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

activity使用多个布局文件,可以通过addContentView的方式进行添加,也可以通过addView的方式添加layout布局文件。题中描述的可以不用多个布局,只需要一个布局就行了。根据不同的题,动态呈现内容就行了。示例代码:TextView tv = (TextView)findViewById(R.id.题目描述)每次点下一题的时候,动态给tv赋值题目描述tv.setText(题目描述)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11814012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存