有一個讓DialogFragment占滿屏幕的需求,在網上查到多種解決辦法不是無效就是對顯示效果有影響,最后還是靠自己查看官方文檔和查看源碼后找到的解決辦法,在這記錄分享一下。
6.0以上版本修改前.png
Android中 DialogFragment寬度占滿高度自適應,在Fragment的onResume()方法中設置window的寬高即可,第一個參數是寬度-1代表默認占滿;第二個參數高度-2默認自適應高度(這兩個參數也可以直接設置固定寬高)。
@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()方法中設置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
結語:修改后對原來風格沒有影響,完美。