为什么ViewPager滑动卡顿
来源:4-5 主界面搭建外层封装-5
慕用1394343
2019-04-30
<android.support.design.widget.CoordinatorLayout 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="match_parent"
android:background="@color/white">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="@color/white"
app:expandedTitleTextAppearance="@style/TextAppearance.Title"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:titleEnabled="false">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/len_224"
android:contentDescription="@string/app_name"
android:foreground="@color/black_alpha_48"
android:scaleType="centerCrop"
android:src="@drawable/bg" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/actionBarWithStatusBarSize"
android:paddingTop="@dimen/statusBarSize"
app:layout_collapseMode="pin">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red_900"
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" />
</android.support.design.widget.CoordinatorLayout>
老师,上面是个布局的代码, 当我滑动AppbarLayout部分时,很流畅, 当我滑动ViewPager(换成RrecyclerView也一样)部分时,却会卡顿, 当我吧ViewPager放进AppbarLayout时,滑起来才流畅(当然,我觉得这儿滑的就是AppbarLayout…) 老师遇到过这种问题吗?
写回答
2回答
-
Qiujuer
2019-05-01
这个问题很正常,这是因为CoordinatorLayout +AppbarLayout有向上滑动的手势,ViewPager是横向的手势;所以滑动的时候容易出现手势被意外消费的情况。
简单来说就是横向滑动的手指如果幅度不大,并且有垂直手势加入就会被外层拦截了,然后就导致ViewPager的事件无法正常消费了,表现为你说的卡顿。
解决办法可以反射:ViewPager中的一个灵敏度的参数,把参数改改。
或者在ViewPager外部套上一层,用来做手势的捕获识别,这样来做优化也是可以的。
00 -
慕用1394343
提问者
2019-05-01
模拟器不卡,同学手机不卡 就我的卡 无语了
012019-05-01
相似问题