gpt4 book ai didi

Android:从 viewPager 选项卡 fragment 之一启动 fragment 时隐藏 viewPager 选项卡

转载 作者:行者123 更新时间:2023-11-30 01:21:45 24 4
gpt4 key购买 nike

我的应用程序中有一个 viewPager,它有多个选项卡。在某些选项卡中,单击一个项目会显示一个新 fragment 。我想让这个 fragment 覆盖标签。这样做是可能的,但我觉得这些方法不太好。

1.) 一种方法是使用 getSupportFragmentManager() 将新创建的 fragment 添加到 Activity 中。这解决了问题,但看起来不是一个好主意,因为它会在使用后退按钮等时产生问题。

2.) 另一种方法是使用 Visibilty.GONE 手动隐藏选项卡,但这种方法的问题是选项卡的这种隐藏是可见的,我的意思是动画可以看到并且看起来很糟糕.

有没有更好的方法来解决这个问题?

这是我的代码。 “sub_fragment_container”存在于 Activity xml 中,因此我收到错误 java.lang.IllegalArgumentException:找不到 fragment 的 id 0x7f0e00ff (com.my.app:id/sub_fragment_container) 的 View 细节 fragment {

FragmentTransaction fragmentTransaction = getChildFragmentManager()
.beginTransaction();
Fragment profileFragment = new DetailFragment();
profileFragment.setArguments(bundle);
fragmentTransaction
.add(R.id.sub_fragment_container, profileFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

最佳答案

使用 android:animateLayoutChanges="true"
或者,为了进一步微调,这是我个人在我的应用程序中使用的经过测试的方法 Newslet解决完全相同的问题。

  1. 将您的 Toolbar 和 TabLayout 包装在 AppBarLayout 中。如果您了解设计支持库,这应该很容易。如果没有,this应该让你开始。
  2. 在您的 onCreate() 中添加这段代码:

    LayoutTransition layoutTransition = new LayoutTransition();
    layoutTransition.setDuration(200);
    layoutTransition.setStartDelay(LayoutTransition.CHANGE_APPEARING, 0);
    layoutTransition.setStartDelay(LayoutTransition.APPEARING, 0);
    layoutTransition.setStartDelay(LayoutTransition.DISAPPEARING, 0);
    layoutTransition.setStartDelay(LayoutTransition.CHANGE_DISAPPEARING, 0);

    appBarLayout.setLayoutTransition(layoutTransition);

在此之后,当您删除选项卡或将其重新添加时,布局更改将顺利进行动画处理。

希望对您有所帮助!

关于Android:从 viewPager 选项卡 fragment 之一启动 fragment 时隐藏 viewPager 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36984631/

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