美文网首页
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