关于的DialogFragment特殊用法

原创 2015年11月18日 13:38:27

1.关于生命周期:

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

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


2.特殊设置:

        getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题
        getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置背景透明

3.改变DialogFragment的显示位置:

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

     @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);
    }

DialogFragment自定义dialog的位置和大小

@Override public void onResume() { super.onResume(); Window dialogWindow = getDi...
  • A199581
  • A199581
  • 2016年09月12日 22:24
  • 3696

【Android】巧用DialogFragment制作按钮弹出快捷菜单

早晨的时候想实现一个点击按钮弹出快捷菜单的功能,网上好多教程都过于陈旧,麻烦,无奈自己查了官网的API,找到了这个。下面来介绍官方的这种制作方法~~ 首先科普一下,快捷菜单。好多人搞不清楚快...
  • panhe1992
  • panhe1992
  • 2013年04月30日 11:32
  • 2412

Android编程之DialogFragment源码详解(二)

DialogFragment是Fragment家族成员之一,如果你把它简单的理解成Dialog,那就错了。它的确可以做作dialog显示,还可以显示出自己定义的Dialog或者AlertDialog,...
  • xyz_fly
  • xyz_fly
  • 2014年02月28日 23:34
  • 7041

Android-->Dialog/DialogFragment宽度高度修改/全屏,自定义样式

其实Dialog, DialogFragment, Activity 能看到的界面,都是基于Window显示的; 也就是修改样式, 都是在修改window的样式; 所以,本质上方法都是一样的,唯一...
  • angcyo
  • angcyo
  • 2016年01月31日 01:55
  • 15362

自定义DialogFragment宽度

概述 Dialog 改宽度的需求还是比较多的,所以继上一篇 图片凸出 文章的代码继续写写自定度 Dialog 的宽度,官方推荐用 DialogFragment ,原因网上有的此处不说了。 代码 自定...
  • hupei
  • hupei
  • 2016年07月29日 17:07
  • 1030

Android DialogFragment实现底部弹出菜单效果

底部弹出式菜单,可以使用PopupWindow 来做,也可以用自定义View来做。当然这里采用DialogFragment来做。DialogFragment是3.0之后引入的,使用DialogFrag...
  • wbwjx
  • wbwjx
  • 2016年01月12日 22:46
  • 7957

DialogFragment 设置进出动画和宽高

在onCreatView中 直接设置 getDialog().getWindow().setWindowAnimations(R.style.animate_dialog); public clas...
  • luohaowang320
  • luohaowang320
  • 2014年12月24日 18:21
  • 4488

DialogFragment使用时遇到的一些问题

DialogFragment使用时遇到的一些问题官方文档: https://developer.android.com/reference/android/app/DialogFragment.h...
  • maxwell0401
  • maxwell0401
  • 2016年08月27日 20:34
  • 3843

Fragment 与DialogFragment 相互之间传递数据

场景: 步骤在FragmentA 中触发显示DialogFragmentB,并传递参数数据mA2B给DialogFragmentB,在DialogFragmentB获取该参数--mA2B。 步骤在Di...
  • cxc19890214
  • cxc19890214
  • 2017年06月20日 11:28
  • 558

DialogFragment显示问题。

dialogfragment加载的布局不显示,只是显示了设置的背景半透明。报错如下: com.demo E/IMGSRV: :0: gralloc_module_createfence: Failed...
  • ddxxii
  • ddxxii
  • 2017年02月17日 17:23
  • 1172
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于的DialogFragment特殊用法
举报原因:
原因补充:

(最多只允许输入30个字)