这个是原先的ScrollView滑动不流畅的布局
<ScrollView
android:id="@+id/weather_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
</ScrollView>
解决方案:使用NestedScrollView代替ScrollView解决滑动冲突
<androidx.core.widget.NestedScrollView
android:id="@+id/weather_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<androidx.core.widget.NestedScrollView>
把ScrollView替换成NestedScrollView以后,上下滑动的效果明显好了很多,不怎么有那种滑动一点点卡顿的体验,
原理大概是这样的: 遇到过在同一个界面中,要展示的内容非常多,完全展示出来高度远超过屏幕高度,这时候通常的做法是布局中使用ScrollView进行嵌套,但如果遇到ScrollView嵌套中包含一个或者多个RecyclerView列表的话,还得自定义RecyclerView以解决滑动冲突。那么今天我们这里有一个现成的控件NestedScrollView,用他替代ScrollView,并且不用自定义RecyclerView等列表控件来解决滑动冲突。因为他的内部已经帮我们解决了子View的滑动冲突。
|