Android AlertDialog AppCompat宽度和高度

Android AlertDialog AppCompat宽度和高度,android,android-alertdialog,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</i

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>

@颜色/颜色口音
@颜色/文字\u颜色\u主色
@彩色/彩色原色
真的
@空的
我需要更改宽度和高度,因为它在我的平板电脑上太大了。有什么想法吗

以下代码工作不正常:

   <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
   <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
@dimen/abc\u dialog\u min\u width\u major
@尺寸/abc\u对话框\u最小值\u宽度\u较小值

如果是自定义对话框,则只能在新创建的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.

并希望它能帮助你

我可以这样调整宽度:

<style name="NarrowDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="windowFixedWidthMajor">70%</item>
    <item name="windowFixedWidthMinor">70%</item>
</style>

属性详细信息:

  • windowFixedHeightMajor
窗口沿屏幕长轴的固定高度, 也就是说,在肖像画中

  • windowFixedHeightMinor
窗口沿屏幕短轴的固定高度,即处于横向时

  • windowFixedWidthMajor
窗口沿屏幕长轴的固定宽度,即处于横向时

  • windowFixedWidthMinor

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

我发现更简单的方法是在styles.xml中设置样式 然后设置 安卓:windowMinWidthMajor 还有安卓:WindowMinWithMinor

<style name="Testing.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:windowMinWidthMajor">90%</item>
    <item name="android:windowMinWidthMinor">90%</item> 
</style>

90%
90% 

50dp
?它不工作。仍然要使用DisplayMerics for Window来获取bigGet width如何仅使用样式?这是一个如何不被接受的答案,谢谢@Tim,其他:关于从这里获取的属性的更多信息
<style name="Testing.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:windowMinWidthMajor">90%</item>
    <item name="android:windowMinWidthMinor">90%</item> 
</style>