with layout_scrollflags layout_collapsemode example coordinatorlayout collapsing appbarlayout android android-support-library android-appbarlayout nestedscrollview android-collapsingtoolbarlayout

android - layout_scrollflags - Colapsar la barra de herramientas y nestedscrollview no desplazarse sin problemas



layout_collapsemode (5)

ACTUALIZACIÓN: puede reducir el tamaño de la imagen simplemente haciendo clic derecho en la imagen en ANDROID STUDIO y Convertir imagen a webp. Esto reducirá drásticamente el tamaño de la imagen

Es muy sencillo. Luché mucho y finalmente llegué a saber que es un problema con la imagen de alta resolución que había colocado en el src de ImageView. Solución: Solo baje la resolución de la imagen manteniendo las dimensiones iguales. (Probablemente utilizando Photoshop).

Trabajó para mi

La vista de desplazamiento anidada se desplaza suavemente al desplazarse hacia abajo, pero al desplazarse hacia arriba es lenta. La barra de herramientas de control (con una vista de imagen y la visualización de fotogramas) al desplazarse hacia arriba no muestra su contenido (permanece en blanco). He intentado cada bandera en la barra de herramientas que se colapsa.

<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>


CoordinatorLayout y CollapsingToolbarLayout smooth scroll es un error y Google aún no lo ha solucionado. : |

eliminar NestedScrollView. RecyclerView con aplicación: layout_behavior = "@ string / appbar_scrolling_view_behavior" Eso es suficiente y arreglado.

puede utilizar una biblioteca de terceros: https://github.com/henrytao-me/smooth-app-bar-layout


Creo que olvidas la etiqueta de cierre para CoordinatorLayout. Además, ponga la barra de herramientas en CollapsingToolbarLayout

<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|exitUntilCollapsed" /> <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="Your title"> </android.support.v7.widget.Toolbar> <!-- What is this for? <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.design.widget.CoordinatorLayout>


Haga que el elemento secundario directo de scrollview anidado se pueda hacer clic (en caso de que no tenga un solo elemento hijo, agregue un diseño y coloque todos los elementos de la interfaz de usuario en él y haga clic en el diseño)
android: clickable = "true"
¡Estaba enfrentando un problema similar y esto me funcionó!

Aquí está el código en el que he estado trabajando:

<?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>

Y aquí está el archivo content_material.xml que tiene NestedScrollView. Tiene un elemento secundario (TextView) que se puede hacer clic.

<?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>


Me enfrentaba a problemas similares con el diseño que contenía el coordinator layout y los fragmentos que contenían RecyclerView . Agregué el siguiente código en CollapsingToolbarLayout para que el desplazamiento sea suave.

app:layout_scrollFlags="scroll|enterAlways"