Whatsapp comme l'Effondrement de la Barre d'outils
Dans mon application, j'aimerais mettre en œuvre Whatsapp page d'accueil comme réductible de la barre d'outils. C'est, pendant le défilement en bas de la liste, la barre d'outils d'aller, et les onglets doivent pin au sommet. Comment puis-je y parvenir?
Voici ma barre d'applications de mise en page
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/appbarLayout"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/collapsibleToolBarLayout"
android:fitsSystemWindows="true"
app:titleEnabled="false"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/white"
app:tabTextColor="@color/product_page_btn_grey"
app:tabSelectedTextColor="@color/upcomer_background_red"
app:tabIndicatorColor="@color/upcomer_background_red"
android:layout_gravity="bottom"
app:layout_scrollFlags="scroll|enterAlways"
app:tabContentStart="72dp" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.9"
android:background="@color/upcomer_background_red"
app:popupTheme="@style/AppTheme.PopupOverlay" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title_image_view"
android:contentDescription="@null"
android:layout_gravity="start|center_vertical"
android:visibility="gone"
android:src="@drawable/title"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/title_layout"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:id="@+id/toolbarText"
style="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/send_button"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"
android:text="@string/send_text"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
android:visibility="gone"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Maintenant la TabLayout n'est pas visible et la Barre d'outils reste là, même si la liste dans la vue pager ci-dessous défile à l'écran. Aide gentiment.
InformationsquelleAutor Jayakrishnan Salim | 2016-03-13
Vous devez vous connecter pour publier un commentaire.
Pour obtenir cette fonctionnalité, un CollapsingToolbarLayout est en fait pas nécessaire, vous pouvez simplement l'effondrement de la Barre d'outils qui est défini comme l'ActionBar.
Voici un exemple de code à l'aide d'une Barre d'outils pour le contrôle ActionBar qui va s'effondrer, et un TabLayout avec un ViewPager.
De s'assurer d'abord que le style utilisé pour les MainActivity est celui qui n'a pas une ActionBar, par exemple:
MainActivity.java, qui a la FragmentPagerAdapter et met en place les onglets:
activity_main.xml
Les parties importantes:
app:layout_scrollFlags="scroll|enterAlways|snap"
dans la Barre d'outilspropriétés
app:layout_behavior="@string/appbar_scrolling_view_behavior"
dansle ViewPager propriétés
Ici est la activity_main.xml fichier:
custom_tab.xml:
BlankFragment.java, on ajoute suffisamment d'éléments pour le faire défiler:
fragment_blank.xml, il est important d'utiliser un RecyclerView, ou tout autre point de Vue qui prend en charge imbriquée de défilement, comme un
NestedScrollView
(side note: vous pouvez appeler
setNestedScrollingEnabled(true)
sur api-21 et jusqu'à la faire fonctionner avec une ListView):MyAdapter.java, le RecyclerView Adaptateur:
card_item.xml, le cercle de l'image et le "blah blah blah" Chaîne sont à la fois statique, seul le contenu
tv_text
TextView est mise à jour à partir de la source de données pour cet exemple simple:construire.gradle dépendances:
Résultat:
snap
drapeau dans la barre d'outils de défilement des drapeaux.Cette bibliothèque va vous aider à
C'est très simple, à la bibliothèque pour Android qui vous permet de coller un en-tête à un défilement de vue et facilement appliquer une animation il
EDIT:
Pour utiliser le StikkyHeader de la bibliothèque, vous avez juste besoin de 3 lignes:
Exemple:
et puis définissez l'animateur de la StikkyHeader:
Ok, donc pour passer le défilement de l'événement de votre
listview/recyclerview
à laappbarlayout
, vous avez besoin de mettre ci-dessous le drapeau de votreframelayout/relativelayout/linearlayout
contenant votre vue défilement, j'.elistview/recyclerview
:par exemple, dans votre cas, il devrait ressembler à:
Exactement ce que vous voulez (il suffit de copier et coller)