最近在看阿里出的Android开发手册,收益良多。今天就简单介绍一下关于DialogFragment的使用,推荐使用DialogFragment来替换Dialog。
1.创建一个DialogFragment对象或定一个类来继承DialogFragment,
DialogFragment dialogFragment = new DialogFragment() {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
return inflater.inflate(R.layout.dialog_fragment, container, false);
}
};
注:选择包的时候请选择
import android.app.DialogFragment;
2.显示这个DialogFragment,
dialogFragment.show(getFragmentManager(), "tag");
注:在此使用getFragmentManager();获取FragmentManager参数时,若你在上一步导包的时候选择的是v4的包时,这里就无法使用,你可能会使用getSupportFragmentManager()来进行参数填充,但是这俩个方法的返回虽然都是FragmentManager,不过俩个不是同一个包下你就出现以下错误:
java.lang.IllegalStateException: Fragment null must be a public static class to be properly recreated from instance state.
这个时候你就可以通过show(FragmentManager fragmentManager,String tag);把DialogFragment显示出来。
3.显示不全问题。
原本的布局是如下:
但是显示出来的页面是这样的:
在你的跟布局加上如下代码:
android:minWidth="1000dp"
android:minHeight="250dp"
效果: