1、自定义dialog点击区域外无法消失问题
解决:
添加 setCanceledOnTouchOutside(true);
2、沉侵式状态下弹窗无法覆盖标题栏问题
添加style
<style name="mydialog2" parent="AlertDialog.AppCompat.Light"> <!--Dialog的windowFrame框为无--> <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:background">@android:color/transparent</item> <!--窗口颜色--> <item name="android:windowBackground">@android:color/transparent</item> <!--灰度--> <item name="android:backgroundDimAmount">0.5</item> <!--dialog的背景是否昏暗--> <item name="android:backgroundDimEnabled">true</item> </style>
然后xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/dialog_list_recy"></android.support.v7.widget.RecyclerView> <View android:layout_width="match_parent" android:layout_height="0.8dp" android:background="@color/qianhui"/> <TextView android:id="@+id/dialog_list_dismiss" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@color/white" android:padding="16dp" android:text="@string/dialog_dismiss"/> </LinearLayout>
3、无法铺满屏幕问题
getWindow().setLayout(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
另外指定位置的话
getWindow().setGravity(Gravity.BOTTOM);