0
请各位看看下面的图像多个片段问题
在左侧面板有2个类别命名的机票和审计,每一个后退按钮。 门票有2 ListView's
。如果我点击第一个Listview
中的任何项目,它将打开第二个Listview
。 同时,如果我再次点击,我会再看到第一个Listview
。再次回来,将退出应用程序。
这种情况对于审计是一样的。
对于这种情况,我采取了4 。
xml文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/framelayout_fragment1_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.7">
</FrameLayout>
<fragment
android:id="@+id/detailFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.mobinius.fragments.DetailFragment"
android:layout_weight="0.3"
/>
有一个翻转动画时I和票证之间切换到审核反之亦然。
private void flipFragments(String tag) {
System.out.println(" tag in flipFragments : "+tag);
Fragment fragment = getFragmentManager().findFragmentByTag(tag);
System.out.println(" fragment in flipFragments : "+fragment);
if (fragment != null)
{
getFragmentManager().popBackStack(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
return;
}
getFragmentManager()
.beginTransaction()
.setCustomAnimations(
R.animator.card_flip_right_in, R.animator.card_flip_right_out,
R.animator.card_flip_left_in, R.animator.card_flip_left_out)
.replace(R.id.framelayout_fragment1_container, new AuditGroupFragment(), tag)
.addToBackStack(tag)
.commit();
}
当我按下返回键,可从后面堆
public void onBack(String tag) {
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);
if(fragment != null)
fragmentManager.popBackStack(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE);
else
finish();
}
更换片段当我点击任何列表项的,与所需的
public void onListItemClick(String tag, Fragment fragmentToAdd) {
getFragmentManager()
.beginTransaction()
.replace(R.id.framelayout_fragment1_container, fragmentToAdd, tag)
.addToBackStack(tag)
.commit();
}
门票naivigation替换当前片段,这两个片段都很完美。
问题:
默认情况下,票务片段将被添加到活动。现在,如果我切换到审计,选择1列表项,然后切换到票,它需要一些时间加载,当我再次切换回审计,我不能看到第二个ListView(它应该已经存储在后面的堆栈)。它从开始加载(显示第一个ListView)。
那么,首先这种方法是否正确?如果不是,请提出正确的方法。