Программно скрыть / показать поддержку поддержки Android в TabLayout внутри AppBarLayout

Я хочу программно скрыть / показать TabLayout в своем AppBarLayout . Просто установить видимость для VISIBLE и GONE недостаточно, так как я хочу оживить изменения и вернуть пространство с моим контентом, пока вкладка отступает и покинет пространство после отображения вкладки.

Ниже приведена соответствующая часть моего макета XML –

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

Solutions Collecting From Web of "Программно скрыть / показать поддержку поддержки Android в TabLayout внутри AppBarLayout"

Как и любой подкласс ViewGroup , AppBarLayout позволяет автоматически создавать анимации во время добавления / удаления дочерних представлений. Вам просто нужно добавить android:animateLayoutChanges="true" (по умолчанию false ) в вашем файле макета.

Что касается исправления содержимого пространства при setVisibility(View.GONE) представления, все, что вам нужно сделать, это использовать setVisibility(View.GONE) а не setVisibility(View.INVISIBLE) , потому что последнее содержит пространство для невидимого представления.