1. 程式人生 > >Android DialogFragment貼合手機底部和左右邊緣

Android DialogFragment貼合手機底部和左右邊緣


重寫DialogFragment裡的onStart方法

@Override
public void onStart() {
    super.onStart();
    // 設定寬度為屏寬, 靠近螢幕底部。
    Window win = getDialog().getWindow();
    // 一定要設定Background,如果不設定,window屬性設定無效
    win.setBackgroundDrawable( new ColorDrawable(Color.TRANSPARENT));

    DisplayMetrics dm = new DisplayMetrics();
    getActivity().getWindowManager().getDefaultDisplay().getMetrics( dm );

    WindowManager.LayoutParams params = win.getAttributes();
    params.gravity = Gravity.BOTTOM;
    // 使用ViewGroup.LayoutParams,以便Dialog 寬度充滿整個螢幕
    params.width =  ViewGroup.LayoutParams.MATCH_PARENT;
    params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
    win.setAttributes(params);
}


關鍵部分是

DisplayMetrics dm = new DisplayMetrics();
    getActivity().getWindowManager().getDefaultDisplay().getMetrics( dm );