How to make a smooth scroll with a nested scroll view inside the coordinator layout

<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="@android:color/background_light" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/main_appbar" android:layout_width="match_parent" android:layout_height="400dp" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/main_collapsing" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleTextAppearance="@android:color/transparent" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:title=""> <fragment xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.mydermacy.www.beyou.activities.CompareClinicsActivity" /> <android.support.v7.widget.Toolbar android:id="@+id/main_toolbar_clinics" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v7.widget.RecyclerView android:id="@+id/rc_clinic_compare" android:layout_width="match_parent" android:layout_height="wrap_content" app:behavior_overlapTop="184dp" android:background="@color/background" /> </android.support.v4.widget.NestedScrollView> <!--app:layout_behavior="@string/appbar_scrolling_view_behavior" />--> </android.support.design.widget.CoordinatorLayout> 

I have a layout with CoordinatorLayout as rootview and inside, I have two child views AppBarLayout and NestedScrollView . I can not do a smooth scroll. What can be done to achieve smooth scrolling?

+5
source share
3 answers

CoordinatorLayout and CollapsingToolbarLayout smooth scrolling error , and Google still did not fix it .: |

uninstall NestedScrollView . RecyclerView with app:layout_behavior="@string/appbar_scrolling_view_behavior" This is enough to fix.

you can use a third-party library: smooth-app-bar-layout

+4
source

 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/main_appbar" android:layout_width="match_parent" android:layout_height="400dp" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/main_collapsing" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleTextAppearance="@android:color/transparent" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:title=""> <fragment xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.mydermacy.www.beyou.activities.CompareClinicsActivity" /> <android.support.v7.widget.Toolbar android:id="@+id/main_toolbar_clinics" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v7.widget.RecyclerView android:id="@+id/rc_clinic_compare" android:layout_width="match_parent" android:layout_height="wrap_content" app:behavior_overlapTop="184dp" android:background="@color/background" /> </android.support.v4.widget.NestedScrollView> <!--app:layout_behavior="@string/appbar_scrolling_view_behavior" />--> </RelativeLayout> </ScrollView> 

0
source

I removed the nested scroll view and app: behavior_overlapTop = "184dp" from the processor view, so the problem was solved and I added the application: layout_behavior = "@ string / appbar_scrolling_view_behavior" to view the help request

0
source

Source: https://habr.com/ru/post/1262795/


All Articles