2016-03-24 15 views
2

Daraltılmış araç çubuğu düzenimi kısaltmaya çalışıyorum ancak CollapsingToolBbarLayout'un yüksekliğini istediğim yeni yüksekliğe (200dp) değiştirdiğimde, sayfa yüklendiğinde resim soluk çıkıyor. Görüntünün gideceği yüksekliği ayarlamaya yönelik bir yol var diye farz ediyorum ama bu işe yarar bir şey bulamıyorum ... teşekkürler şimdiden teşekkürlerParalaks için solma yüksekliğinin değiştirilmesi CollapsingToolbarLayout

Kullandığım düzen: öğreticisindeki

<android.support.design.widget.AppBarLayout 
    android:id="@+id/htab_appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:fitsSystemWindows="true" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/htab_collapse_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="256dp" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"> 

     <ImageView 
      android:id="@+id/htab_header" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@drawable/mountains" 
      android:fitsSystemWindows="true" 
      android:scaleType="centerCrop" 
      app:layout_collapseMode="parallax" /> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/htab_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="104dp" 
      android:gravity="top" 
      android:minHeight="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      app:titleMarginTop="13dp" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/htab_tabs" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:layout_gravity="bottom" 
      app:tabIndicatorColor="@android:color/white" /> 

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

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

Kodu: http://blog.grafixartist.com/parallax-scrolling-tabs-design-support-library/

cevap

3

Bu ince bez tetik CollapsingToolbarLayout özel bir yöntemle belirlendiği için aslında o kadar basit değil:

final int getScrimTriggerOffset() { 
    return 2 * ViewCompat.getMinimumHeight(this); 
} 

Geçersiz kılmayı denemeye çalışın. bunu yapmak için


bir yolu sadece kendi ince kumaş yapmaktır: için benzer

<android.support.design.widget.CollapsingToolbarLayout 
    android:id="@+id/htab_collapse_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"> 

    <ImageView 
     android:id="@+id/htab_header" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/header" 
     android:fitsSystemWindows="true" 
     android:scaleType="centerCrop" 
     app:layout_collapseMode="parallax" /> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/scrim" 
     android:background="@color/orange" 
     android:fitsSystemWindows="true" 
     android:alpha="0" /> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/htab_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="104dp" 
     android:gravity="top" 
     android:minHeight="?attr/actionBarSize" 
     app:layout_collapseMode="pin" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
     app:titleMarginTop="13dp" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/htab_tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_gravity="bottom" 
     app:tabIndicatorColor="@android:color/white" /> 

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

Ve tetikleyebilir CollapsingToolbarLayout nasıl yaptığını: Yeni özelliğiyle ilgili olduğunu

// For status bar scrim 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    getWindow().getDecorView().setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | 
        View.SYSTEM_UI_FLAG_LAYOUT_STABLE); 
    getWindow().setStatusBarColor(0x40000000); 
} 
collapsingToolbarLayout.setStatusBarScrimColor(0); 

final View scrim = findViewById(R.id.scrim); 
AppBarLayout.OnOffsetChangedListener listener = new AppBarLayout.OnOffsetChangedListener() { 
    @Override 
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { 
     if(collapsingToolbarLayout.getHeight() + verticalOffset < ViewCompat.getMinimumHeight(collapsingToolbarLayout) * 3/2) { 
      scrim.animate().alpha(1).setDuration(600); 
     } else { 
      scrim.animate().alpha(0).setDuration(600); 
     } 
    } 
}; 

appBar.addOnOffsetChangedListener(listener); 
+0

Ayrıca animasyon garip görünebilir yapmak için de bu yolu kullanıyorum, garip görünüyor olsa da. – sakiM

1

Tasarım destek kütüphanesinin v24’ünde CollapsingToolbarLayout: scrimVisibleHeightTrigger. İşte

belgelerine bu konuda şöyle diyor:

tetikleyici bir ince bez görünürlük değişikliği ne zaman tanımlamak için kullanılan piksel görünür yüksekliğe miktarını ayarlayın. Bu görünüm 'un görünen yüksekliği, belirtilen değerden daha azsa, izleyiciler görünür olacak, aksi halde gizlenirler.

İlgili konular