在两个片段之间切换

时间:2012-06-18 08:18:58

标签: android android-fragments

我想做以下事情。第一和第二有两个片段。必要时要在它们之间进行过渡。当我从第二个片段开始,首先存储在堆栈中。当我单击Back按钮时,第二个片段被删除并从堆栈中返回第一个片段。我再次无法进入第二个片段 - 它已被删除。我该如何解决这个问题?

在主要活动中(Fragment1的回调):

@Override
public void onNavigate() {
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    Fragment1 newFragment1 = (Fragment1) getFragmentManager().findFragmentByTag("frag_1");
    Fragment2 newFragment2 = (Fragment2) getFragmentManager().findFragmentByTag("frag_2");
    ft.replace(R.id.main, newFragment2);
    ft.remove(newFragment1);
    ft.addToBackStack(null);
    ft.commit();
}

我动态添加的片段:

    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.add(R.id.main, new Fragment1(), "frag_1");
    ft.add(R.id.main, new Fragment2(), "frag_2");
    ft.commit();

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:)。我隐藏了第一个片段并将事务添加到后台堆栈。当我点击按钮返回时我返回片段

@Override 
public void onNavigate() { 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    Fragment1 newFragment1 = (Fragment1) getFragmentManager().findFragmentByTag("frag_1"); 
    ft.hide(newFragment1); 
    ft.addToBackStack(null); 
    ft.commit(); 
}
相关问题