zhpanvip / BannerViewPager

🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
Apache License 2.0
3.57k stars 434 forks source link

滑动冲突问题 #248

Closed coolyunyun closed 2 years ago

coolyunyun commented 2 years ago

布局: 顶部 CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout 底部 ViewPager2

在ViewPager2中的Fragmengt中布局中就一个RecyclerView, RecyclerView中的item 加入了BannerViewPager。 此时左右滑动banner无问题,上下滑动banner事件被消费了,无效果。

试过disallowInterceptTouchEvent、disallowParentInterceptDownEvent均无用。

BVP 版本:3.5.5

HELP -_-|||

coolyunyun commented 2 years ago

bannerviewpager.setUserInputEnabled(false); 是可以滑动了,但是 bvp的左右滑动事件也就没了。

zhpanvip commented 2 years ago

看下demo代码,有一样的例子。

coolyunyun commented 2 years ago

亲测: demo中首页的recyclerview的addHeaderView中的banner是垂直滚动,如果设置成水平后,拖动headerView中的banner往上滑动,并不会触发AppBarLayout收缩的效果。 这个有解决方式么

coolyunyun commented 2 years ago

把banner里的viewpager设置成setUserInputEnabled(false) 就能拖动了,但是左右滑动的事件也就没了。 -_-|||

coolyunyun commented 2 years ago

解决了: RecyclerView recyclerView = (RecyclerView) mViewPagerVertical.mViewPager.getChildAt(0); recyclerView.setNestedScrollingEnabled(false);

建议作者把BannerViewPager类中的 private ViewPager2 mViewPager; 开放成public,让外部能进行操作

zhpanvip commented 2 years ago

解决了: RecyclerView recyclerView = (RecyclerView) mViewPagerVertical.mViewPager.getChildAt(0); recyclerView.setNestedScrollingEnabled(false);

建议作者把BannerViewPager类中的 private ViewPager2 mViewPager; 开放成public,让外部能进行操作

mViewPager 不会对外暴露出来。如果暴露了ViewPager2,开发者自己调用ViewPager2 的API会导致BVP内部混乱。