自定义DialogFragment
public class MyFragment extends DialogFragment {
private static MyFragment mfragment = null;
private int width = 0;
private int height = 0;
public InfoFragment() {};
public static InfoFragment newIntance()
{
if(mfragment == null)
return new InfoFragment();
else
return mfragment;
}
public void init(int width,int height)
{
this.width = width;
this.height = height;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
View view = inflater.inflate(R.layout.info, container);
/*
.....
*/
return view;
};
@Override
public void onResume()
{
super.onResume();
Window dialogWindow = getDialog().getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);
WindowManager wm = (WindowManager)getActivity().getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
display.getMetrics(dm);
int ScreenWidth = dm.widthPixels;
int ScreenHeight = dm.heightPixels;
//Dialog 居中显示
lp.x = (ScreenWidth - width) / 2;
lp.y = (ScreenHeight - height) / 2;
lp.width = width;
lp.height = height;
dialogWindow.setAttributes(lp);
}
}
使用
MyFragment mf = MyFragment.newIntance();
mf.init(500,500);
mf.show(getFragmentManager(),"");