gpt4 book ai didi

android - 使用 removeView() 从 AppBarLayout 中删除 TabLayout 时出现故障

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:54 26 4
gpt4 key购买 nike

当在 recyclerview 中点击一个项目时,我称之为

appbar.removeView(tabs)

This视频展示了发生了什么

似乎完全没有动画就把TabLayout去掉,然后加回去,再用动画去掉。我已经放慢了过渡以展示它在做什么。

像这样将它们加回去时也会发生这种情况

if (tabs.parent != null) {
(tabs.parent as ViewGroup).removeView(tabs)
}
appbar.addView(tabs)
appbar.setExpanded(true, true)

这是我的布局

<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/coordinator_main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">

<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
app:elevation="0dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/MyToolbar"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextAppearance="@style/TabText"
android:layout_marginRight="@dimen/small_spacing"
android:layout_marginLeft="@dimen/small_spacing"
app:tabMode="fixed"
app:tabGravity="fill"
app:tabIndicatorHeight="2dp"
app:layout_scrollFlags="enterAlways"/>

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


<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/appbar"
app:layout_behavior="@string/appbar_scrolling_view_behavior" >

<***.***.CustomViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</FrameLayout>

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

最佳答案

从视频来看,似乎有三个 fragment 根据 TabLayout 加载。MyPhotosFragmentMyAlbumsFragmentMyFavouritesFragment

如果我理解正确,您将 TabLayout 放在 Activity 中,这三个 fragment 直接加载到 Activity 中。当在抽屉上选择“隐藏相册”时,将显示/添加Appbar,并且选择另一个项目时将其隐藏/删除。

您应该做的是制作一个充当容器的新 fragment 。我们称它为 HiddenAlbumsFragment。然后您应该从 Activity 中删除 TabLayoutViewPager 并将其放在 HiddenAlbumsFragment 中。单击选项卡项时,HiddenAlbumsFragment 应加载相应的 fragment 作为子 fragment 。然后,当您通过从抽屉中选择一个来替换另一个 HiddenAlbumsFragment 时,tablayout 将自动消失。

关于android - 使用 removeView() 从 AppBarLayout 中删除 TabLayout 时出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50048975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com