android android.support.v4.app.DialogFragment设置大小

时间:2013-11-26 12:07:14

标签: android android-dialogfragment

我有一个android.support.v4.app.DialogFragment,当它显示时,高度是最大值,但是widht只是包装内容,我需要设置一个自定义高度,

我已经尝试过了:

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
getDialog().getWindow().setLayout(2000, 2000);  
super.onViewCreated(view, savedInstanceState);
}

但结果始终相同

EDIT1

这是xml布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:minHeight="10000dp"
    android:minWidth="10000dp" >

.......content
</RelativeLayout>

EDIT2

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.marche_charts, container, false);

        WindowManager.LayoutParams wmlp = getDialog().getWindow().getAttributes();
        wmlp.gravity = Gravity.CENTER;
        wmlp.height = 2000;
        wmlp.width = 2000;
        getDialog().getWindow().setAttributes(wmlp);
        return view;
    }

3 个答案:

答案 0 :(得分:1)

你需要覆盖onActivityCreated()方法并把这个getDialog()。getWindow()。setLayout(2000,2000);在那里

答案 1 :(得分:0)

将match_parent放在xml布局的宽度和高度上。

答案 2 :(得分:0)

在为DialogFragment创建视图(onCreateView方法)时使用setMinWidth。例如

final DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);

view.setMinimumWidth((int) (Math.min(displaymetrics.widthPixels,
        displaymetrics.heightPixels) * 0.9f));