具有自定义View alwas的DialogFragment占全屏宽度

时间:2016-02-11 21:53:11

标签: android

我将DialogFragment与来自View的XML和标准按钮填充的自定义AlertDialog.Builder一起使用。我的onCreateDialog看起来如下:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();
    View rootView = inflater.inflate(R.layout.toolkit_picker_color, null);
    setupView(rootView);

    builder.setView(rootView);
    builder.setPositiveButton(android.R.string.ok, this);
    builder.setNegativeButton(android.R.string.cancel, this);

    return builder.create();
}

使用自定义视图的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:id="@id/toolkit.container.a"
        android:layout_width="100dp"
        android:layout_height="52dp"
        android:layout_alignParentTop="true"
        android:gravity="center" >

        <include layout="@layout/toolkit_picker_color_modes" />
    </LinearLayout>
</RelativeLayout>

显示对话框时,其高度(按预期方式)将包装自定义布局的内容。但是,对话框的宽度需要整个屏幕,就像使用match_parent一样。

我已经看到了基于从源代码设置对话框宽度的解决方案,但这不是我想要的,它不适用于WRAP_CONTENT

使用不DialogFragment的{​​{1}}时没有问题。但是,我需要那些按钮。

是否可以根据自定义AlertDialog.BuilderDialogFragment的宽度设置为AlertDialog.Builderwrap_content

0 个答案:

没有答案