我使用自定义视图创建了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一样。但相反,它占据了几乎全屏的高度和全屏宽度:
原因似乎是自定义风格:
<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%),而不是占据几乎全屏高度?
答案 0 :(得分:1)
使用此项设置最小宽度。
<item name="android:windowMinWidthMajor">70%</item>
<item name="android:windowMinWidthMinor">70%</item>
没有明确的方法来设置最大值,因为对话框被设计为需要的宽度(即对话框的默认值设置为“wrap_content”)。您可以尝试设置视图的宽度,并通过自定义布局使其更小,以便它适合对话框,但没有保证在较小的屏幕上它将是70%。