razerdp / BasePopup

Android下打造通用便捷的PopupWindow弹窗库
https://github.com/razerdp/BasePopup
Apache License 2.0
5.19k stars 757 forks source link

加入ViewPager2 里面放Recycleview后setOutSideDismiss(true); 没有效果。去掉Viewpager2后正常。 #294

Closed shoucanjun closed 4 years ago

shoucanjun commented 4 years ago

1592360619(1) device-2020-06-17-102408

shoucanjun commented 4 years ago

1592363953(1)

razerdp commented 4 years ago

请贴一下你的布局,会不会是布局match了

shoucanjun commented 4 years ago

请贴一下你的布局,会不会是布局match了

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="@dimen/d_195dp"
    android:layout_marginBottom="@dimen/d_195dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/dialog_apps_title"
        style="@style/d_text_singleLine"
        android:layout_gravity="center_horizontal"
        android:text="广州xx"
        android:textColor="@color/h_black"
        android:textSize="@dimen/d_40dp"
        android:textStyle="bold" />

    <LinearLayout
        android:layout_width="@dimen/d_480dp"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="@dimen/d_30dp"
        android:background="@drawable/bg_round_medium_radius_line_whitebg"
        android:orientation="vertical"
        android:paddingLeft="@dimen/d_10dp"
        android:paddingTop="@dimen/d_30dp"
        android:paddingRight="@dimen/d_10dp"
        android:paddingBottom="@dimen/d_10dp">

        <androidx.viewpager2.widget.ViewPager2
            android:id="@+id/dialog_apps_vp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white">

            <com.flyco.tablayout.CommonTabLayout
                android:id="@+id/dialog_apps_tab"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:paddingTop="@dimen/d_20dp"
                app:tl_iconVisible="true"
                app:tl_indicator_anim_enable="true"
                app:tl_indicator_height="0dp"
                app:tl_indicator_margin_bottom="0dp"
                app:tl_tab_padding="@dimen/d_10dp">

            </com.flyco.tablayout.CommonTabLayout>
        </FrameLayout>

    </LinearLayout>

</LinearLayout>

razerdp commented 4 years ago

emmm,怎么close了。。。

shoucanjun commented 4 years ago

emmm,怎么close了。。。

Viewpager2 的高度不全屏就解决了。

razerdp commented 4 years ago

噗,,,,我解决完上一个刚看你这个就close了。。。

布局这方面需要注意的是根布局问题,很多时候根布局填满屏幕,但内部各种处理,导致视觉上看起来像是弹窗内容没有铺满,这时候会很容易认为为啥我点背景没法dismiss,,实际上点击事件根本就没到背景上,而是被rootview捕获了。

shoucanjun commented 4 years ago

噗,,,,我解决完上一个刚看你这个就close了。。。

布局这方面需要注意的是根布局问题,很多时候根布局填满屏幕,但内部各种处理,导致视觉上看起来像是弹窗内容没有铺满,这时候会很容易认为为啥我点背景没法dismiss,,实际上点击事件根本就没到背景上,而是被rootview捕获了。

嗯嗯,谢谢大佬。