Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Collapsing toolbar and nestedscrollview not scrolling smoothly

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> 

like image 800
CP Nagar Avatar asked Sep 17 '15 13:09

CP Nagar


People also ask

How do I stop NestedScrollView scrolling?

setnestedscrollingenabled set it to false.

What is nested scrolling?

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.

What is collapsing Toolbar Android?

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.

What is difference between nested ScrollView and NestedScrollView?

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.


1 Answers

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> 
like image 59
Anindita Pani Avatar answered Oct 05 '22 15:10

Anindita Pani