2016-05-30 16 views
1

Ich habe eine Aktivität mit einem CollapsingToolbarLayout und einem TabLayout. Wenn ich nach rechts und links schlittere, bewegt es sich perfekt zwischen Fragmenten. Wenn ich jedoch versuche, nach unten zu scrollen (roter Pfeil im Screenshot), ignoriert er es. Ich habe versucht, dem Fragment eine ScrollView hinzuzufügen, aber es hat sich nicht geändert. Irgendwelche Ideen warum?Fragment in CollapsingToolbarLayout mit ViewPager rutscht nicht nach unten

BTW - Irgendwie auf dem zweiten Fragment, einem RecycleView, funktioniert das Herunterrutschen. Dies wird auf dem rechten Bildschirm gesehen:

screenshot

MainActivity XML:

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

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/app_bar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <android.support.design.widget.CollapsingToolbarLayout 
       android:id="@+id/collapsing_toolbar_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:contentScrim="?attr/colorPrimary" 
       app:layout_scrollFlags="scroll|enterAlways"> 

       <ImageView 
        android:layout_width="match_parent" 
        android:layout_height="122dp" 
        android:scaleType="centerCrop" 
        android:src="@drawable/rsz_bg_cover" 
        app:layout_collapseMode="parallax" /> 

       <android.support.v7.widget.Toolbar 
        android:id="@+id/app_bar" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
        app:layout_collapseMode="pin" /> 

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

      <android.support.design.widget.CollapsingToolbarLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:layout_scrollFlags="scroll|enterAlways"> 

       <android.support.design.widget.TabLayout 
        android:id="@+id/tab_layout" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@color/colorAccent" 
        app:layout_collapseMode="pin" 
        app:tabIndicatorColor="@color/colorPrimary" 
        app:tabSelectedTextColor="@android:color/white" 
        app:tabTextColor="#EEE" /> 
      </android.support.design.widget.CollapsingToolbarLayout> 

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

     <android.support.v4.view.ViewPager 
      android:id="@+id/view_pager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 


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

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_drawer" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:menu="@menu/menu_drawer" /> 
</android.support.v4.widget.DrawerLayout> 
+0

Warum haben Sie zwei 'CollapsingToolbarLayout' hinzugefügt? – Rehan

+0

Es hält das TabLayout beim Zusammenklappen fest – Guy

Antwort

6

dieses Layout Versuchen. Ich habe hinzugefügt TabLayout in AppBarLayout, ich glaube, es sollte funktionieren wie Sie wollen. Aber wenn Sie wollen, können Sie zwei CollapsingToolbarLayout halten, um Ihr gewünschtes Verhalten zu erreichen. Und stellen Sie sicher, sollte entweder true oder false in allen Layouts sonst werden Sie möglicherweise nicht das erwartete Verhalten zu sehen.

<?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" 
    android:id="@+id/root_coordinator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:contentScrim="?attr/colorPrimary" 
      android:fitsSystemWindows="true" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="122dp" 
       android:scaleType="centerCrop" 
       android:src="@drawable/rsz_bg_cover" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
       app:layout_collapseMode="pin" /> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/colorAccent" 
      app:layout_collapseMode="pin" 
      app:tabIndicatorColor="@color/colorPrimary" 
      app:tabSelectedTextColor="@android:color/white" 
      app:tabTextColor="#EEE" /> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/view_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

Und in Fragment Layout Verwenden NestedScrollView und fügen layout_behavior drin.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView 
    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" 
    android:background="@color/white" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     // Your Layout 

</android.support.v4.widget.NestedScrollView> 
+0

Du bist der König! Wenn es eine Möglichkeit gäbe, dir ein Bier anzubieten, würde ich es tun! Lange damit zu kämpfen ... – Guy

+0

@Guy Lol. Ich hatte auch eine harte Zeit, als ich es zum ersten Mal tat. Danke für das Angebot jeglicher Art! – Rehan

+0

hast du mein Leben gerettet @Rehan –