以编程方式隐藏/显示 android 支持在 AppBarLayout 内设计 TabLayout
Programmatically hide / show android support design TabLayout inside AppBarLayout
我想以编程方式隐藏/显示我的 AppBarLayout
中的 TabLayout
。仅将可见性设置为 VISIBLE
和 GONE
是不够的,因为我想为更改设置动画并用我的内容回收 space,同时选项卡撤回并离开 space 一次选项卡显示回来。
下面是我布局的相关部分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>
与任何 ViewGroup
子类一样,AppBarLayout
允许在 adding/removal 子视图期间使用自动动画。您只需要在布局文件中添加 android:animateLayoutChanges="true"
(默认为 false
)。
至于在视图消失时回收space内容,您只需使用setVisibility(View.GONE)
而不是setVisibility(View.INVISIBLE)
,因为后者持有space ] 为不可见的视图。
我想以编程方式隐藏/显示我的 AppBarLayout
中的 TabLayout
。仅将可见性设置为 VISIBLE
和 GONE
是不够的,因为我想为更改设置动画并用我的内容回收 space,同时选项卡撤回并离开 space 一次选项卡显示回来。
下面是我布局的相关部分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>
与任何 ViewGroup
子类一样,AppBarLayout
允许在 adding/removal 子视图期间使用自动动画。您只需要在布局文件中添加 android:animateLayoutChanges="true"
(默认为 false
)。
至于在视图消失时回收space内容,您只需使用setVisibility(View.GONE)
而不是setVisibility(View.INVISIBLE)
,因为后者持有space ] 为不可见的视图。