您的位置:首页 > 其它

关于的DialogFragment特殊用法

2015-11-18 13:38 302 查看
1.关于生命周期:

          [b]创建view可以通过两个途径,一是fragment中的onCreateView(),二是DialogFragment中的onCreateDialog()。前者适合对自定义的layout进行设置,具有更大的灵活性,而后者适合对简单dialog进行处理,可以利用Dialog.Builder直接返回Dialog对象,从生命周期的顺序而言,先执行onCreateDialog(),后执行oonCreateView(),我们不应同时使用两者。

[/b]

[b]         DialogFragment没有类似于popupwindow/diaolog那样的onDismissListener 监听方法,我们可以利用其生命周期方法实现对其dismiss的监听。
[/b]



[b]2.特殊设置:[/b]

[b]        getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题

        getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置背景透明
[/b]

[b]3.改变DialogFragment的显示位置:[/b]

[b]   正常情况下都是默认居中,我们可以先获取的window,然后设置位置,代码如下:[/b]

[b]     @Override

    public void onStart() {

        super.onStart();

        final DisplayMetrics dm = new DisplayMetrics();

        getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);

        final WindowManager.LayoutParams layoutParams = getDialog().getWindow().getAttributes();

        layoutParams.width = dm.widthPixels/2;//宽占屏幕一半

        layoutParams.height = dm.heightPixels/2;//高占屏幕一半

        layoutParams.gravity = Gravity.TOP;

        layoutParams.y = DisplayUtils.dp2px(getActivity(), 48);//距离顶部有48dp的距离

        getDialog().getWindow().setAttributes(layoutParams);

    }

[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: