我的应用中有一个viewPager,它有几个标签。在某些选项卡中,单击项目时会显示一个新片段。我希望这个片段覆盖标签。这样做是可能的,但这些方法对我来说并不好看。
1。)一种方法是使用getSupportFragmentManager()
将新创建的片段添加到活动中。这解决了这个问题,但看起来不是一个好主意,因为它会在使用后退按钮等时产生问题。
2.。)其他方法是使用Visibilty.GONE
手动隐藏选项卡,但这种方法的问题是隐藏选项卡是可见的,我的意思是动画可以看到并且看起来很糟糕。
有没有更好的方法来解决这个问题?
这是我的代码。 " sub_fragment_container
"存在于xml活动中,因此出现错误java.lang.IllegalArgumentException: No view found for id 0x7f0e00ff (com.my.app:id/sub_fragment_container) for fragment DetailFragment{
FragmentTransaction fragmentTransaction = getChildFragmentManager()
.beginTransaction();
Fragment profileFragment = new DetailFragment();
profileFragment.setArguments(bundle);
fragmentTransaction
.add(R.id.sub_fragment_container, profileFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
答案 0 :(得分:1)
使用android:animateLayoutChanges="true"
或者,为了进一步微调,这是我在我的应用Newslet中亲自使用的经过测试的方法来解决完全相同的问题。
在你的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);
在此之后,当您删除选项卡或将其添加回来时,布局更改将平滑动画。
希望这有助于你!