-1

Hier ist mein Layout hierarquyAndroid AppBarLayout + CollapsingToolbarLayout + CoordinatorLayout

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/coordinatorLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clipChildren="false" 
     android:clipToPadding="false" 
     android:theme="@style/AppThemeAppBarOverlay" 
     app:elevation="0dp"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar_layout" 
      contentScrim="@color/transparent" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:clipChildren="false" 
      android:clipToPadding="false" 
      app:contentScrim="@color/transparent" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <LinearLayout 
       android:id="@+id/openday_parent" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:clipChildren="false" 
       android:clipToPadding="false" 
       android:orientation="vertical" 
       android:paddingTop="?attr/actionBarSize" 
       app:layout_collapseMode="parallax" 
       app:layout_collapseParallaxMultiplier="1"> 
       ...</LinearLayout> 

      <android.support.v7.widget.Toolbar 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/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:clipChildren="false" 
       android:clipToPadding="false" 
       app:layout_collapseMode="pin" 
       app:layout_scrollFlags="snap|exitUntilCollapsed" 
       app:popupTheme="@style/AppThemePopupOverlay" /> 

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

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="@dimen/card_view_margin_bt" 
     android:background="@color/windowBackground" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     tools:listitem="@layout/card_item" /> 

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

<include layout="@layout/navigation_view" /> 

Ich habe zwei Probleme:

  • Wenn die appbarLayout erweitert, und ich durchführen Ein schneller Bildlauf Nach oben in der RecyclerView scrollt der RecyclerView wirklich schnell ein Gleichzeitig beginnt die kollabierende Symbolleiste zu kollabieren. Dies sollte nicht passieren. Ich möchte Scroll nur in der RecyclerView zulassen, wenn das CollapsingLayout vollständig ausgeblendet ist. Ich denke, das Problem hat mit dem RecyclerView-Fling zu tun, denn wenn ich langsam scrolle, tritt dieser Fehler nicht auf. Ich versuche, einen Workaround dafür zu finden.

  • Die zweite Sache ist, wenn die Aktivität beginnt, wird die Appbar erweitert. ich will es kollabiert beginnen, die mit

appBarLayout.setExpanded (false, true)

Aber mit dieser Ansatz funktioniert, wird die Symbolleiste auch zusammenbrach. Ich möchte nur den appBarLayout-Header, aber nicht die Symbolleiste minimieren.

Antwort

0

Die erste Ausgabe bezieht sich auf clipToPadding mit den RecyclerView-Schriftrollen. Habe es einfach entfernt und der Fehler war weg.

Das zweite Problem wurde behoben, indem alle Symbolleistenflags entfernt und die Ansicht im appBarLayout-Listener manuell übersetzt wurde. Ich weiß nicht, ob es das Beste ist, aber es hat wunderbar funktioniert.

Verwandte Themen