Nested scroll view scrolls smoothly on scrolling down but on scroll up it is sluggish.Collapsing toolbar(with an image view and framelayout) upon scrolling up doesn't renders its content(remains blank). I have tried every flag in collapsing toolbar.
<android.support.design.widget.CoordinatorLayout 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/coordinatorLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="100dp" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/pic" app:layout_collapseMode="parallax" app:layout_collapseParallaxMultiplier="0.5" app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"/> <include android:id="@+id/framelayout" layout="@layout/header_layout" app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" android:minHeight="100dp"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <!-- Your Scrollable View --> <android.support.v4.widget.NestedScrollView android:id="@+id/nested" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="24dp"> </LinearLayout> </android.support.v4.widget.NestedScrollView> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="#da1b75" android:orientation="horizontal" android:textColor="#ffffff" android:theme="@style/ThemeOverlay.AppCompat.Light" app:layout_anchor="@id/appbar" app:layout_collapseMode="pin" app:title=""> </android.support.v7.widget.Toolbar>
setnestedscrollingenabled set it to false.
NestedScrollView is just like ScrollView, but it supports acting as both a nested scrolling parent and child on both new and old versions of Android. It is enabled by default. NestedScrollView is used when there is a need for a scrolling view inside another scrolling view.
Android CollapsingToolbarLayout is a wrapper for Toolbar which implements a collapsing app bar. It is designed to be used as a direct child of a AppBarLayout. This type of layout is commonly seen in the Profile Screen of the Whatsapp Application.
Nested scrolling is enabled by default. Show activity on this post. NestedScrollView is just like ScrollView, but in NestedScrollView we can put other scrolling views as child of it, e.g. RecyclerView. But if we put RecyclerView inside NestedScrollView, RecyclerView's smooth scrolling is disturbed.
Make the direct child of nested scrollview clickable ( incase you don't have just one child element,add a layout and put all your UI elements into it and make the layout clickable)
android:clickable="true"
I was facing similar issue and this worked for me !
Here's the code I have been working on -
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context="test.testrecycler.MaterialActivity" > <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="300dp" android:theme="@style/AppTheme.AppBarOverlay" android:fitsSystemWindows="true" > <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:expandedTitleTextAppearance="@style/expandedappbar" app:collapsedTitleTextAppearance="@style/collapsedappbar" app:statusBarScrim="@color/colorPrimaryDark" > <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/sample" android:scaleType="centerCrop" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_material" /> </android.support.design.widget.CoordinatorLayout>
And here is the file content_material.xml having NestedScrollView.It has one child element(TextView) which has been made clickable.
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.NestedScrollView 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/content_material" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="test.testrecycler.MaterialActivity" tools:showIn="@layout/activity_material"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:text="This is an association football club formed in 1983, based in the town of Dover, Kent, England. In the 1989–90 season Dover Athletic won the Southern League championship, but failed to gain promotion to the Football Conference as the club's ground did not meet the required standard. Three seasons later the team won the title again and this time gained promotion to the Conference, where they spent nine seasons before being relegated. The club was transferred to the Isthmian League Premier Division in 2004, but another poor season led the club to a further relegation. After three seasons in the Isthmian League Division One South, the club won the championship and promotion back to the Premier Division, and the following season won another championship and promotion to Conference South. In the 2013–14 season, Dover defeated Ebbsfleet United to return to the Conference Premier after a twelve-year absence. Nicknamed the Whites for their white shirts, they have played at the Crabble Athletic Ground since the club's formation. Their best performance in the FA Cup was reaching the third round proper in both the 2010–11 and 2014–15 seasons. (Full article...) Recently featured: Kalki Koechlin Rogue River (Oregon) Operation Ironside Archive By email More featured articles... his time gained promotion to the Conference, where they spent nine seasons before being relegated. The club was transferred to the Isthmian League Premier Division in 2004, but another poor season led the club to a further relegation. After three seasons in the Isthmian League Division One South, the club won the championship and promotion back to the Premier Division, and the following season won another championship and promotion to Conference South. In the 2013–14 season, Dover defeated Ebbsfleet United to return to the Conference Premier after a twelve-year absence. Nicknamed the Whites for their white shirts, they have played at the Crabble Athletic Ground since the club's formation. Their best performance in the FA Cup was reaching the third round proper in both the 2010–11 and 2014–15 seasons. (Full article...)" /> </android.support.v4.widget.NestedScrollView>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With