youth5201314 / banner

🔥🔥🔥Banner 2.0 来了!Android广告图片轮播控件,内部基于ViewPager2实现,Indicator和UI都可以自定义。
Apache License 2.0
12.91k stars 2.51k forks source link

与appbarlayout嵌套,事件冲突 #758

Closed fishsoft closed 4 years ago

fishsoft commented 4 years ago

将banner嵌套在AppBarLayout中,banner的点击事件和AppBarLayout的上下滑动事件冲突 `<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="match_parent">

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/bg_page">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/abl_home"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/bg_page"
        app:elevation="0dp">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <RelativeLayout
                android:id="@+id/rl_demo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_collapseMode="pin"
                app:layout_collapseParallaxMultiplier="1.0">

                <com.youth.banner.Banner
                    android:id="@+id/iv_top_image"
                    android:layout_width="match_parent"
                    android:layout_height="150dp"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:scaleType="fitXY"
                    android:src="@mipmap/icon_f_banner" />
        </com.google.android.material.appbar.CollapsingToolbarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>`

crystalboyice commented 4 years ago

我也出现这个问题,请问怎么解决啊?

YoungMr commented 4 years ago

我也出现这个问题,请问怎么解决啊?

0blivionU commented 4 years ago

您好,大佬,我也出现这个问题了,有空可以解决一下吗?

SmileJason commented 4 years ago

我也出现这个问题,有解决方案吗?

WinsorLwj commented 4 years ago

我也出现这个问题,请问怎么解决啊?

SmileJason commented 4 years ago

我自己写了个viewpage代替了,目前没有很好的解决方案

xyZangGit commented 4 years ago

我也出现了这个问题,应该是 viewpage2和 原因,目前viewpage2是final,好像没有解决办法

SmileJason commented 4 years ago

我用的viewpage

limbowangqi commented 4 years ago

都没有解决 为啥要关闭啊

CJR10032 commented 4 years ago

我也出现了这个问题,应该是 viewpage2和 原因,目前viewpage2是final,好像没有解决办法

和ViewPager2没关系,是大佬做了拦截事件的处理。。。

CJR10032 commented 4 years ago

最新版已经解决了,加了一个标识,setIntercept设置为false即可

zhaobinsir commented 1 week ago

setIntercept 还是不行

SmileJason commented 1 week ago

您好,您的邮件已经收到,祝身体健康。

zhaobinsir commented 1 week ago

正解:已验证:[ViewPager2]使用RecyclerView实现,RecyclerView吃掉了nested的一系列方法,导致无法回传至CoordinatorLayout,导致behavior失效,最终无法滑动 vBanner.viewPager2.children.find { it is RecyclerView }?.let { (it as RecyclerView).isNestedScrollingEnabled = false }

zhaobinsir commented 1 week ago

将banner嵌套在AppBarLayout中,banner的点击事件和AppBarLayout的上下滑动事件冲突 `

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/bg_page">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/abl_home"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/bg_page"
        app:elevation="0dp">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <RelativeLayout
                android:id="@+id/rl_demo"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_collapseMode="pin"
                app:layout_collapseParallaxMultiplier="1.0">

                <com.youth.banner.Banner
                    android:id="@+id/iv_top_image"
                    android:layout_width="match_parent"
                    android:layout_height="150dp"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:scaleType="fitXY"
                    android:src="@mipmap/icon_f_banner" />
        </com.google.android.material.appbar.CollapsingToolbarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>`

https://github.com/youth5201314/banner/issues/758#issuecomment-2463684462

zhaobinsir commented 1 week ago

我也出现了这个问题,应该是 viewpage2和 原因,目前viewpage2是final,好像没有解决办法

和ViewPager2没关系,是大佬做了拦截事件的处理。。。

就是ViewPager2问题、我把源码拦截事件全部注释、CoordinatorLayout仍然无法上下滑动 解决方案:https://github.com/youth5201314/banner/issues/758#issuecomment-2463684462