有一個讓DialogFragment占滿屏幕的需求,在網(wǎng)上查到多種解決辦法不是無效就是對顯示效果有影響,最后還是靠自己查看官方文檔和查看源碼后找到的解決辦法,在這記錄分享一下。

6.0以上版本修改前.png
Android中 DialogFragment寬度占滿高度自適應(yīng),在Fragment的onResume()方法中設(shè)置window的寬高即可,第一個參數(shù)是寬度-1代表默認(rèn)占滿;第二個參數(shù)高度-2默認(rèn)自適應(yīng)高度(這兩個參數(shù)也可以直接設(shè)置固定寬高)。
@Override
public void onResume() {
super.onResume();
getDialog().getWindow().setLayout(-1,-2 );
}

6.0以上版本修改后.png
在Android4.4和5.1版本遇到多出一空白Title的問題。

4.4_修改前.png

5.1_修改前.png
在Fragment的onCreateView()方法中設(shè)置getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);取消Title。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_question_see_dialog, container, false);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); /** 去4.4,5.1空Title */
return view;
}

4.4_修改后.png

5.1修改后.png
結(jié)語:修改后對原來風(fēng)格沒有影響,完美。