美文网首页
Android DialogFragment使用记录

Android DialogFragment使用记录

作者: 神棄丶Aria | 来源:发表于2019-03-01 15:50 被阅读0次

    1、简介

    主要用于记录DialogFragment的部分使用,便于以后查看。

    2、setStyle

    1、为DialogFragment设置style的时机是在onCreate()

        @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setStyle(DialogFragment.STYLE_NO_TITLE,R.style.Theme_AppCompat_Dialog);
        }
    
    

    几个属性:
    DialogFragment.STYLE_NORMAL:基础Dialog
    DialogFragment.STYLE_NO_TITLE:没有标题
    DialogFragment.STYLE_NO_FRAME:Dialog无边框
    DialogFragment.STYLE_NO_INPUT:无法输入,不接受输入的焦点,触摸无效。但是放EditText仍然可以编辑,存在疑问。

    2、自定义Dialog适用的属性

    <style name="common_dialog_style" parent="@android:style/Theme.Dialog">
            <!-- 无边框设置 -->  
            <item name="android:windowFrame">@null</item>
             <!-- 是否浮现在activity之上 -->  
            <item name="android:windowIsFloating">true</item>
            <!-- 是否半透明 -->  
            <item name="android:windowIsTranslucent">false</item>
            <!-- 是否没有标题 -->  
            <item name="android:windowNoTitle">true</item>
             <!-- 背景 -->  
            <item name="android:windowBackground">@drawable/dialog_bg</item>
            <!-- 是否背景模糊 -->  
            <item name="android:backgroundDimEnabled">true</item>
            <!--dialog遮罩透明度-->
            <item name="android:backgroundDimAmount">0.5</item>
        </style>
    

    3、设置窗口大小和位置

        @Override
        public void onStart() {
            super.onStart();
            WindowManager.LayoutParams layoutParams = getDialog().getWindow().getAttributes();
            layoutParams.gravity = Gravity.CENTER; // 设置Dialog的位置
            layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
            layoutParams.height = Device.dip2px(getContext(),200);
            getDialog().getWindow().setAttributes(layoutParams);
        }
    

    4、设置Dialog关闭回调事件

        @Override
        public void onDismiss(DialogInterface dialog) {
            super.onDismiss(dialog);
            if (dismissListener != null) dismissListener.onDismiss(dialog);
            
        }
        
        private OnDismissListener dismissListener;
        
        public interface OnDismissListener {
            void onDismiss(DialogInterface dialogInterface);
        }
    

    相关文章

      网友评论

          本文标题:Android DialogFragment使用记录

          本文链接:https://www.haomeiwen.com/subject/nqvduqtx.html