为DialogFragment设置自定义宽度和高度

时间:2015-07-06 07:51:21

标签: android layout android-dialogfragment

我在里面有一个带TableLayout的DialogFragment。当我执行我的代码时,DialogFragment高度占据了我的整个屏幕。我正在使用RelativeLayout。任何人都可以帮我在Android中设置DialogFragment的自定义宽度和高度吗?这就是我所做的,但不会为我工作:

Window view_dialog = getDialog().getWindow();
        view_dialog.setTitle("MODE :  CONNECTION");
        view_dialog.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
        WindowManager.LayoutParams parameters = view_dialog.getAttributes();
        parameters.y = dptopx(60);
        view_dialog.setAttributes(parameters);


private int dptopx(int i) {
        DisplayMetrics measurements = getActivity().getResources().getDisplayMetrics();
        return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, i, measurements);
    }

1 个答案:

答案 0 :(得分:0)

使用height获取屏幕widthdisplaymatrix,然后根据高度和宽度放置所需的尺寸。

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;

WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.height = height - (height/5); 
lp.width = width - 80;

dialog.getWindow().setAttributes(lp);