android-fragments 替换为另一个片段后,片段仍然可见

xoefb8l8  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(158)

我有两个片段,其中一个在默认情况下是可见的,我使用了下面的代码。(所有代码都在一个活动中,该活动是两个片段的父级)

MainFragment mainFragment = new MainFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,mainFragment).commit();

使用导航工具,用户可以改变可见的片段,我使用这段代码来改变片段。

MarketFragment marketFragment = new MarketFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, marketFragment).commit();

但是看起来这个新片段只是出现在前一个片段的顶部,并且仍然记录了对main fragment的点击。
我也尝试先删除main fragment,但它没有改变任何东西。

getSupportFragmentManager().beginTransaction().remove(visibleFragment).commit();
MarketFragment marketFragment = new MarketFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, marketFragment).commit();

我也尝试了rebuildinvalidate cache的项目,但这些都没有帮助。
我做错了什么?

cwtwac6a

cwtwac6a1#

我认为前面的片段是可见的,因为你没有为它们设置背景。所以,你要做的就是为这些片段的布局文件设置背景,如下所示:

android:background="@color/white"

或者

android:backgroundTint="@color/white"

相关问题