AlertDialog AppCompat的宽度和高度

wac*_*law 4 android android-alertdialog

我对AlertDialog的客户风格如下:

<style name="Testing.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="colorAccent">@color/color_accent</item>
    <item name="android:textColorPrimary">@color/text_color_primary</item>
    <item name="android:background">@color/color_primary</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我需要更改宽度和高度,因为它在我的平板电脑上太大了.有任何想法吗?

下面的代码不能正常工作:

   <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
   <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
Run Code Online (Sandbox Code Playgroud)

Tim*_*eed 14

我能够像这样调整宽度:

<style name="NarrowDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="windowFixedWidthMajor">70%</item>
    <item name="windowFixedWidthMinor">70%</item>
</style>
Run Code Online (Sandbox Code Playgroud)

Dialog dialog = new AlertDialog.Builder(this, R.style.NarrowDialog)...

您可能还希望调整最小宽度:

<item name="windowMinWidthMajor">65%</item>
<item name="windowMinWidthMinor">65%</item>
Run Code Online (Sandbox Code Playgroud)

属性详情:

  • windowFixedHeightMajor:

窗口沿屏幕主轴的固定高度,即纵向时.

  • windowFixedHeightMinor:

窗口沿屏幕短轴的固定高度,即在横向时.

  • windowFixedWidthMajor:

窗口沿屏幕主轴的固定宽度,即在横向时.

  • windowFixedWidthMinor:

窗口沿屏幕短轴的固定宽度,即纵向时.


Tar*_*ara 8

如果是自定义对话框,则只能在新创建的XML文件中设置高度和宽度.但如果你使用AlertDialog.builder,那么使用它.

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(layout);
builder.setTitle("Title");
alertDialog = builder.create();
alertDialog.show();
alertDialog.getWindow().setLayout(600, 400); //Controlling width and height.
Run Code Online (Sandbox Code Playgroud)

并遵循这个希望,它可以帮助你.


小智 5

我发现一个更简单的方法是在styles.xml 中设置样式,然后设置android:windowMinWidthMajor 和android:windowMinWidthMinor

<style name="Testing.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:windowMinWidthMajor">90%</item>
    <item name="android:windowMinWidthMinor">90%</item> 
</style>
Run Code Online (Sandbox Code Playgroud)