我想为ProgressDialog设置一个合适的样式.我喜欢默认的,但我想自定义它.我试过使用AppCompat对话框,但它们都为我的Dialog设置了一些奇怪的宽度和高度.
我发现从MaterialDialog扩展可以解决这个问题,所以这段代码可以工作:
<style name="ProgressDialogTheme" parent="MaterialBaseTheme.AlertDialog" >
</style>
Run Code Online (Sandbox Code Playgroud)
这是因为MeterialDialog本身设置了自定义宽度
<style name="MaterialBaseTheme.AlertDialog" parent="MaterialBaseTheme.Dialog">
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我发现AppCompat对话框设置了相同的自定义宽度,这里是:
<style name="Base.Theme.AppCompat.Light.Dialog.Alert">
<item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
<item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但它不起作用
唯一的区别是MeterialDialog属性开头的andorid命名空间.
有人可以解释为什么android:windowMinWidthMajor
这个伎俩?
小智 5
@Ian Wong 的回答是正确的。以下是有关此的更多详细信息:
android:windowMinWidthMajor -> min_dialog_width 在横向
android:windowMinWidthMinor -> 纵向中的 min_dialog_width
的实际值@dimen/abc_dialog_min_width_major & @dimen/abc_dialog_min_width_minor在以下路径中定义:
@dimen/abc_dialog_min_width_major-是65%要45%取决于屏幕尺寸。
@dimen/abc_dialog_min_width_minor-是95%要72%取决于屏幕尺寸。
| 归档时间: |
|
| 查看次数: |
3768 次 |
| 最近记录: |