自定义dialog点击区域外不消失、沉侵式状态下弹窗出现后无法覆盖标题栏,弹窗布局无法铺满屏幕问题

时间:2024-03-27 12:42:16

1、自定义dialog点击区域外无法消失问题

解决:

添加 setCanceledOnTouchOutside(true);

2、沉侵式状态下弹窗无法覆盖标题栏问题
添加style
<style name="mydialog2" parent="AlertDialog.AppCompat.Light">
    <!--DialogwindowFrame框为无-->
    <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>
自定义dialog点击区域外不消失、沉侵式状态下弹窗出现后无法覆盖标题栏,弹窗布局无法铺满屏幕问题自定义dialog点击区域外不消失、沉侵式状态下弹窗出现后无法覆盖标题栏,弹窗布局无法铺满屏幕问题


3、无法铺满屏幕问题
getWindow().setLayout(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);

另外指定位置的话  
getWindow().setGravity(Gravity.BOTTOM);