Réduire la disposition de la barre d'outils avec viewpager
Je suis en utilisant CollapsingBarLayout avec viewpager et les fragments de viewpager avoir listview, gridview.
Voici mon code:
<?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:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bigsteptech.seandroidnativeapp.classes.modules.common.ViewGroupEvent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:expandedTitleTextAppearance="@style/TransparentText">
<FrameLayout
android:id="@+id/carouselLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_collapseMode="parallax">
<ImageView
android:id="@+id/coverImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"/>
<LinearLayout
android:layout_width="match_parent"
android:gravity="bottom"
android:orientation="vertical"
android:layout_gravity="bottom"
android:padding="@dimen/profile_image_margin"
android:background="@drawable/gradient_bg"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/profile_image_margin"
android:textSize="@dimen/text_size_xlarge"
android:textStyle="bold"
android:textColor="@color/white"
android:id="@+id/content_title"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_marginLeft="@dimen/profile_image_margin"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="@color/white"
android:textSize="@dimen/text_size_medium"
android:id="@+id/category_title"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_toRightOf="@+id/category_title"
android:layout_marginLeft="@dimen/profile_image_margin"
android:textColor="@color/white"
android:textSize="@dimen/text_size_medium"
android:id="@+id/memberCount"/>
</RelativeLayout>
</LinearLayout>
</FrameLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ActionBarPopupThemeOverlay"
android:background="@drawable/gradient_bg"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_vertical"
android:isScrollContainer="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/contentInfo"
android:paddingBottom="48sp"
android:clipToPadding="false"
android:orientation="vertical">
<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/profile_page_left_right_margin"
android:layout_gravity="center"
android:id="@+id/progressBar"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@color/grey_light">
<TextView android:id="@+id/ownerTitle"
android:clickable="true"
android:focusable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/keyline_1"
android:layout_gravity="center_vertical"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/body_text_1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/profile_image_margin"
android:padding="10dp">
<com.bigsteptech.seandroidnativeapp.Classes.Modules.Common.ViewRelated.ExpandableTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/keyline_1"
style="@style/TextBody"
android:layout_gravity="center_vertical"
android:id="@+id/view_description" />
</LinearLayout>
<android.support.design.widget.TabLayout
android:id="@+id/slidingTabs"
android:layout_width="match_parent"
app:tabIndicatorHeight="3dp"
app:tabMode="scrollable"
android:layout_height="wrap_content"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="300dp">
</android.support.v4.view.ViewPager>
</LinearLayout>
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.FloatingActionButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:layout_anchor="@id/appbar"
android:id="@+id/joinGroupButton"
app:layout_anchorGravity="bottom|right|end"
android:src="@drawable/ic_action_new"
android:layout_margin="@dimen/fab_margin"
android:clickable="true"/>
</android.support.design.widget.CoordinatorLayout>
Les fragments d'avoir listview, gridview ne pas faire défiler jusqu'à l'effondrement de la barre d'outils, comment puis-je réaliser ce travail..
Merci de m'aider, je vous remercie beaucoup avancé...
source d'informationauteur Prithniraj Nicyone
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de mettre votre ViewPager à l'intérieur d'applications alot de la section et de l'installation layout_behavior :
Si vous à l'aide de Fragments comme des enfants de ViewPager vous avez besoin d'installation layout_behavior à chaque fragment à l'intérieur de ViewPager trop.
l'effondrement de la barre d'outils avec des onglets à l'aide du nouveau matériel d'aide à la conception de la bibliothèque
J'ai utilisé officiel de l'effondrement de la barre d'outils fonction de la nouvelle conception de matériel de soutien de la bibliothèque.
ici vue réduite de la hauteur est 256dp et les onglets de la hauteur est 56dp
j'ai fait en suivant le chemin
je coupe l'image en deux parties, l'une pour la vue réduite et un pour les onglets.
j'ai découpé les images selon dp de pixel tailles avec une haute résolution drawable xxxhdpi et mettre dans le dossier drawable donc elle s'adapte à toutes les tailles d'écran
j'ai 2000x1246 image
haut de l'image 256dp= 2000x1024 pixel
onglet du bas de l'image 56dp= 2000x224 pixel
Ici est l'exemple complet avec le code source
ListView
etGridView
ne sont pas équipés avecNestedScrolling
fonctions. Et c'est nécessaire pour travailler avec laCollapsingToolbarLayout
.La façon la plus simple de le faire fonctionner, serait de changer votre
ListView
etGridView
àRecyclerViews
(RecyclerView
implémenteNestedScrollingChild
).J'ai eu ce problème aussi. Vous aurez besoin d'utiliser RecyclerView. Maintenant, je comprends que vous devez utiliser ListView et GridGiew, mais vous pouvez l'utiliser à l'intérieur d'un RecyclerView.
Par exemple, je vais vous montrer comment mettre en œuvre un GridLayout dans un RecyclerView.
Dans votre fragment de mise en page (que vous voudriez mettre en œuvre GridView), ajoutez le code XML suivant
Ensuite sur votre fragment de java,
sur votre fragment onCreateView, définir la RecyclerView,
Créer la méthode setupRecyclerView,
Vous devez définir mAdapter comme
RecyclerView.Adapter
premier. Créer ensuite l'adaptateur pour le RecyclerView. Notez que, mItems est une ArrayList qui contient le contenu de votre liste.AdapterGridView.java