有一个让DialogFragment占满屏幕的需求,在网上查到多种解决办法不是无效就是对显示效果有影响,最后还是靠自己查看官方文档和查看源码后找到的解决办法,在这记录分享一下。
Android中 DialogFragment宽度占满高度自适应,在Fragment的onResume()方法中设置window的宽高即可,第一个参数是宽度-1代表默认占满;第二个参数高度-2默认自适应高度(这两个参数也可以直接设置固定宽高)。
@Overridepublic void onResume() { super.onResume(); getDialog().getWindow().setLayout(-1,-2 );}复制代码
在Android4.4和5.1版本遇到多出一空白Title的问题。
在Fragment的onCreateView()方法中设置getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);取消Title。
@Overridepublic 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;}复制代码
结语:修改后对原来风格没有影响,完美。