CollapsingToolbarLayout ne fonctionne pas (effondrement) lors du défilement
Je suis en train de créer un CollapsingToolbarLayout
et ci-dessous un listview, lorsque la liste est fait défiler la Barre d'outils doit s'effondrer, mais sa ne fonctionne pas quand défiler la Barre d'outils ne s'effondre pas.
Utilisé ce tutoriel: http://android-developers.blogspot.in/2015_05_01_archive.html
Remarque: Le FrameLayout contient la liste
<LinearLayout 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="wrap_content"
android:orientation="vertical"
android:scrollbars="vertical">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbara"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
La framelayout code:
<RelativeLayout 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="ranjithnair02.com.supporttest.BlankFragment">
<ListView
android:id="@+id/rcyv"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="10dp"
android:layout_marginRight="10dp"
android:src="@android:drawable/ic_search_category_default"
app:borderWidth="0dp"
app:elevation="5dp"
app:rippleColor="@color/wallet_highlighted_text_holo_light" />
</RelativeLayout>
source d'informationauteur Psypher
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser RecyclerView au lieu de ListView
Note:
n'oubliez pas de mettre à jour RecyclerView dans Gradle fichier.
J'ai fait un exemple en utilisant RecyclerView à la place. Le code source peut être trouvé ici:
https://github.com/jiahaoliuliu/MaterialDesignSample/tree/collapsingToolbars
Il ya un couple de choses que vous devriez prendre en compte et que le poste n'est pas dit.
Utilisation CoordinatorLayout comme la principale disposition
Utiliser un thème sans ActionBar et réglez la barre d'outils actionBar à la place. Vous pouvez le faire en créant un thème spécial pour l'activité de ce genre:
Et dans le AndroidManifest.xml fichier, procédez comme suit:
Une fois cela fait, mettez-le sur le code Java:
Ici est une fonctionnelle de code xml que j'utilise.
Si ce n'est pas assez pour vous, vous pouvez suivre le code de Chris Banes ici:
https://github.com/chrisbanes/cheesesquare
Le problème est le
RelativeLayout
. Essayez de remplacer leFrameLayout
avec leListView
et puis leFloatingButton
. Le tout enveloppé dans unCoordinatorLayout
de cours.