12

TabLayout benim AppBarLayout'umda programsal olarak gizlemek/göstermek istiyorum. Sekmeler geri çekildikten sonra sekme geri çekilir ve alandan ayrılırken değişikliklerin canlandırılmasını ve içeriğimle alanın geri kazanılmasını istediğim için VISIBLE ve GONE'a görünürlük ayarlaması yeterli değildir. AppBarLayout çocuk görüş ekleme/kaldırma sırasında otomatik animasyonlar için izin verir, herhangi ViewGroup alt sınıf olarakProgram destekli olarak göster/göster android Tablosu Tasarım TabLayout içinde AppBarLayout

<android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

     <android.support.design.widget.TabLayout 
      android:id="@android:id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:tabMode="scrollable" 
      android:layout_marginStart="42dp" 
      android:layout_marginLeft="42dp" 
      style="@style/MainTabLayout"> 

     </android.support.design.widget.TabLayout> 
    </android.support.design.widget.AppBarLayout> 
+0

Değişikliği gerçekleştirmek için, yalnızca android ekleyin: ana AppBarLayout'a animateLayoutChanges = "true". Bu, View.GONE yeterli olmalı dedi. – natario

+0

Bu sorunsuz çalışıyor! Teşekkürler! Cevap olarak gönderebilseydiniz, kabul edebilirim. – jaibatrik

cevap

18

-

Aşağıda ilgili benim düzen XML parçasıdır. Yerleşim dosyanızda android:animateLayoutChanges="true" (varsayılan olarak false) eklemeniz gerekir.

Görünüm bittiğinde boşluk içeriğini geri almak için, tek yapmanız gereken setVisibility(View.INVISIBLE) yerine setVisibility(View.GONE) kullanmaktır, çünkü bu, görünmez görünüme ait alanı tutar.