5

Tasarım Desteği Kitaplığı ile uğraşıyorum ve birilerinin bana yardımcı olabileceğini umduğum küçük bir sorunla karşılaştım.Viewpager CollapsingToolbarLayout kullanırken görünmüyor

Ben parralax içinde çöken bir ImageView içeren bir CollapsingToolbar kullanıyorum. CollapsingToolbar'da, ViewPager'imi kaydırması gereken bir TabLayout'um var. Sorunum, ViewPager'ın görünmemesi. Sorun, yalnızca ViewPager layout_height öğemi match_parent veya wrap_content olarak ayarladığımda ortaya çıkıyor. Eğer bunu 600dp'ye ayarlarsam, o zaman sorun gider, ama sonra görünüm çok güzel olmayan sabit bir uzunluk olarak belirir.

Herhangi bir yardım grealty takdir olurdu!

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

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

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

app:layout_behavior="@string/appbar_scrolling_view_behavior ile görmek doğru konacak CoordinatorLayout doğrudan alt öğesi olmalıdır:

İşte Size CoordinatorLayout ve ViewPager arasında NestedScrollView ve LinearLayout seviyelerini kaldırmalısınız benim XML

<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/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/detail_backdrop_height" 
    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" 
     > 

     <ImageView 
      android:id="@+id/backdrop" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:layout_collapseMode="parallax" 
      android:src="@drawable/stock_image"/> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      android:layout_gravity="top" 
      /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom"/> 

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     > 

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewpager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/white" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      /> 
    </LinearLayout> 
    </android.support.v4.widget.NestedScrollView> 

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

cevap

8

var AppBarLayout ile ilişkili olarak.

+0

"NestedScrollView" ve "LinearLayout" öğelerini kaldırmak sorunu giderir, yani "ViewPager" işlevi artık görünür durumdadır. Bununla birlikte, başka bir problem ortaya çıkıyor: 'ViewPager'ı dikey olarak kaydırmam mümkün değil, bu yüzden ilk önce o görüntülemelere katıldım. Bunu düzeltmek için herhangi bir öneriniz var mı? – Adam

+1

@Adam - İhtiyacınız varsa her sayfaya bir "NestedScrollView" ekleyebilirsiniz. – ianhanniballake

+2

Yardımlarınız için teşekkürler. ViewPager'ın kendi yerine ViewPager'ın parçalarına NestedScrollViews yerleştirmeyi bitirdim ve işi yaptı! – Adam