【安卓】如何在屏幕底部显示DialogFragment对话框,并且与屏幕等宽?

对话框默认是在屏幕中间的,想在底部实现对话框,并且可以适配屏幕....

回答

这应该就是你想实现的位于底部、与屏幕等宽的DiaglogFragment了。
(你问题描述里的“适应屏幕”,我理解的是“与屏幕等宽”)
【安卓】如何在屏幕底部显示DialogFragment对话框,并且与屏幕等宽?

自定义一个位于屏幕底部、与屏幕等宽的DialogFragment

public class DatePickerDialog extends DialogFragment {

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

// 使用不带theme的构造器,获得的dialog边框距离屏幕仍有几毫米的缝隙。

// Dialog dialog = new Dialog(getActivity());

Dialog dialog = new Dialog(getActivity(), R.style.CustomDatePickerDialog);

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); // must be called before set content

dialog.setContentView(R.layout.dialog_datepicker);

dialog.setCanceledOnTouchOutside(true);

// 设置宽度为屏宽、靠近屏幕底部。

Window window = dialog.getWindow();

WindowManager.LayoutParams wlp = window.getAttributes();

wlp.gravity = Gravity.BOTTOM;

wlp.width = WindowManager.LayoutParams.MATCH_PARENT;

window.setAttributes(wlp);

return dialog;

}

<!-- res/values/styles.xml -->

<style name="CustomDatePickerDialog" parent="@style/AppTheme">

<item name="android:layout_width">match_parent</item>

<item name="android:layout_height">wrap_content</item>

<item name="android:windowIsFloating">true</item>

</style>

一个Demo

我自定义了一个日期选择的DialogFragment,这是它的github地址

以上是 【安卓】如何在屏幕底部显示DialogFragment对话框,并且与屏幕等宽? 的全部内容, 来源链接: utcz.com/a/101563.html

回到顶部