1

Ich versuche, etwas wie das Bild gebucht, aber der Viewpager ist scrollbar mit dem RecyclerView, der Header ist ein einfaches lineares/Relative Layout und das wird statisch sein, die Fab ist gleich (nicht scrollbar), ist es aber nicht Arbeiten.Jemand kann erklären, wie funktioniert AppBarLayout und CollapsingToolbarLayout?

posted ich mein Layout unter

enter image description here

<android.support.design.widget.CoordinatorLayout 
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="match_parent" 
android:fitsSystemWindows="true"> 

<include layout="@layout/layout_view_pager" 
    app:layout_collapseMode="parallax" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipToPadding="true" 
    android:saveEnabled="false" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

      <RelativeLayout 
       android:id="@+id/header_labels" 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/header_height" 
       android:background="@color/brand_green" 
       app:layout_collapseMode="pin" 
       android:orientation="vertical"> 

       <TextView 
        android:id="@+id/actionbar_title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true" 
        android:textColor="@android:color/white" 
        android:textSize="43sp"/> 

       <TextView 
        android:id="@+id/actionbar_balance_label" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true" 
        android:layout_marginTop="5dp"   android:textSize="13sp"/> 
      </RelativeLayout> 

     <android.support.v7.widget.Toolbar 
        android:id="@+id/my_toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        app:layout_collapseMode="pin" 
        app:contentInsetStart="0dp"> 

        <TextView 
         android:id="@+id/chime_sign" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:gravity="center" 
         app:iconFontColor="@android:color/white" 
         app:iconFontSize="26sp"/> 

       </android.support.v7.widget.Toolbar> 

    </android.support.design.widget.CollapsingToolbarLayout> 

</android.support.design.widget.AppBarLayout> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:clickable="true" 
    android:src="@drawable/fab_icon_mm" 
    app:elevation="6dp" 
    app:fabSize="normal" 
    app:rippleColor="@color/brand_dark_green" 
    app:pressedTranslationZ="12dp" 
    app:layout_anchor="@id/header_labels" 
    app:layout_anchorGravity="bottom|right|end"/> 

+0

Bitte erläutern Sie, was Sie mit „die viewpager mit dem recyclerView scrollbaren ist“ – Karakuri

+0

ja, wenn Sie die recyclerView zum Scrollen starten, wird die viewpager auch mit dem collapsingtoolbarlayout Scrollen (wenn möglich) so etwas wie ein Header für die Listenansicht – DiegoF

Antwort

0

Erstens Sie app:layout_collapseMode zu pin sowohl für RelativeLayout und Toolbar festgelegt haben, die keine Wirkung zeigen wird. Wenn Sie app:layout_collapseMode für eine beliebige Ansicht festlegen, wird die Höhe der Ansicht beim Scrollen nicht geändert. Um die Höhe einer Ansicht beim Scrollen zu ändern, müssen Sie app:layout_collapseMode auf parallax setzen.

Zweitens, legen Sie eine bestimmte Höhe für Ihre AppBarLayout. Einstellung WRAP_CONTENT wird nicht ordnungsgemäß funktionieren. Sie müssen bestimmte Dimensionen wie 180 dpi festlegen.

Drittens, nach Ihrer Frage wollte der Viewpager mit der RecyclerView scrollbar sein. Ihr Code funktioniert nicht so, wie Sie es haben wollten. Wenn Sie möchten, dass die ViewPager mit RecyclerView scrollbar ist, müssen Sie die RecyclerView aus dem XML-Code entfernen und sie zu einer separaten XML-Codedatei hinzufügen. Dann müssen Sie eine oder zwei (je nach Bedarf) erstellen, fügen Sie die Fragment in der ViewPager und instanziieren Sie die RecyclerView dort. Diese Fragment ist auch verantwortlich für das Aufblasen von Daten in der RecyclerView.

+0

Es ist nichts falsch daran, 'wrap_content' für die Höhe des' AppBarLayout' zu verwenden, ich habe es in meinen Apps gemacht. Es gibt auch keine Voraussetzung, dass er Fragmente überhaupt benutzt. Es ist nicht klar aus der Frage, was er meint, wenn er sagt, dass der "Viewpager mit dem RecyclerView scrollbar ist". Er könnte meinen, dass er möchte, dass der ViewPager so tut, als wäre er das erste Element im RecyclerView. – Karakuri

Verwandte Themen