我有一个带有ViewPager的TabLayout。 ViewPager有四个片段F1,F2,F3和F4。 F1包含一个FrameLayout,它可以有2个片段F11和F12。最初我在FrameLayout中使用以下代码添加F11。
Fragment11 fragment11 = new Fragment11();
fragment11.setArguments(getActivity().getIntent().getExtras());
getActivity().getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, fragment11, Constants.FRAGMENT_11)
.commit();
F11包含ListView。当我单击此ListView中的任何项目/行时,F11将替换为F12。 F12是一个细节片段。
Fragment12 fragment12 = new Fragment12();
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment12, Constants.FRAGMENT_12)
.addToBackStack(null)
.commit();
对于正常的应用流程,它运行正常。现在假设我现在在Fragment12中并按下主页按钮。现在我打开任何繁重的应用程序(相机或任何其他应用程序)从内存中删除我的应用程序。现在我又开始了我的应用程序。
现在有两个Fragment11和一个Fragment12可见,都在同一时间。当我按下时,Fragment12被移除,现在可以看到两个Fragment11。当我单击Fragment11的ListView行时,顶部的Fragment11将被Fragment12替换,但是底部的Fragment11仍然存在。
这就是我想要的: 当应用程序从后台到达前台时,Fragment12应该是可见的,当我按下时,应该弹出Fragment12以显示Fragment11。
我该怎么做?
答案 0 :(得分:9)
我知道为时已晚,但这个答案可以帮助别人。它不是一个合适的解决方案,但它为我工作。因此,请将android:clickable="true"
和android:background="?android:attr/colorBackground"
放在片段的根视图中。希望这会奏效。
答案 1 :(得分:0)
我遇到了同样的问题。但我也找不到合适的解决方案。在我的情况下,当我打开多个应用程序并且它们返回到我的应用程序时,它会导致与您身边发生的碎片相同的问题。但我让我的应用程序稳定。我通过以下解决方案完成了这项工作:
当您的应用程序从内存中删除后,再次打开应用程序,然后打开要在其中显示碎片的MainActivity的onCreate()方法。
这里我检查了backstackEntrycount,如果它大于0,则删除所有片段并显示基本片段。
<nav id="site-navigation" class="main-navigation" role="navigation">
<div class="col-width">
<script>
$(function() {
$( "#openclose" ).click(function(){
$( ".menu-toggle" ).switchClass( "menu-toggle", "menu-close", 1000 );
$( ".menu-close" ).switchClass( "menu-close", "menu-toggle", 1000 );
});
});
</script>
<div id="openclose" class="menu-toggle"><?php _e( 'Menu', 'theme-name' ); ?></div>
<a class="skip-link screen-reader-text" href="#content"><?php _e( 'Skip to content', 'theme-name' ); ?></a>
</div>
<?php wp_nav_menu( array('theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
</div>
</nav><!-- #site-navigation -->
希望它会有所帮助!