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);
}
网友评论