调整android对话框大小

时间:2018-04-28 14:22:12

标签: android android-alertdialog

我使用自定义视图创建了DialogFragment,由LayoutInflater:

填充
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
        LayoutInflater inflater = getActivity().getLayoutInflater();
        return new AlertDialog.Builder(getActivity(), R.style.MyDialogTheme)
                .setView(inflater.inflate(R.layout.used_libraries, null))
                .setPositiveButton(R.string.close, null)
                .create();
}

我希望它只占用屏幕的一部分,就像通常的DialogFragment一样。但相反,它占据了几乎全屏的高度和全屏宽度:

enter image description here

原因似乎是自定义风格:

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
        <!--item RadioButton or CheckBox color-->
        <item name="colorControlNormal">@android:color/white</item>
        <item name="colorControlActivated">@color/colorAccent</item>
        <!--item text color-->
        <item name="android:textColorAlertDialogListItem">@android:color/white</item>
        <!--buttons color-->
        <item name="colorAccent">@color/colorAccent</item>
        <!--title and message color-->
        <item name="android:textColorPrimary">@android:color/white</item>
        <!--dialog background-->
        <item name="android:windowBackground">@color/colorPrimary</item>
        <!--toolbar overflow popup background-->
        <item name="android:background">@color/colorPrimary</item>

        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>

但是如何使这个对话框的大小等于默认的android对话框大小(约为宽度的70%),而不是占据几乎全屏高度?

1 个答案:

答案 0 :(得分:1)

使用此项设置最小宽度。

<item name="android:windowMinWidthMajor">70%</item>
<item name="android:windowMinWidthMinor">70%</item>

没有明确的方法来设置最大值,因为对话框被设计为需要的宽度(即对话框的默认值设置为“wrap_content”)。您可以尝试设置视图的宽度,并通过自定义布局使其更小,以便它适合对话框,但没有保证在较小的屏幕上它将是70%。