创建自定义后退键以浏览片段

时间:2013-11-07 15:24:02

标签: android android-fragments back

我得到了下一个FragmentActivity。这个FragmentActivity用一个LinearLayout(一个菜单,其中一些按钮被定义为调用其他片段)和一个FrameLayout(一个黑色空间,根据我选择的按钮加载其他片段)来扩充布局。

public class MenuViewActivity extends FragmentActivity {
....

我使用onClickListener加载选定的片段:

protected void onCreate(Bundle savedInstanceState) {
....

final OnClickListener fragment_1 = new OnClickListener() {
    @Override
    public void onClick(View v) {

        fragment_1 Fragment = new fragment_1();
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.fragment_container, Fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }
};

我为大约5个按钮执行此操作。此菜单还包含自定义后退键。这个后退按钮的功能应该是:

[fragment_1][fragmen_2][fragment_3][fragment_4][fragment_5]

应用程序启动时始终显示fragment_1。我决定从fragment_1转到任何其他片段。所以我可以从[fragment_1]到[fragment_4]进行示例。按后退键时,我应该返回[fragment_1]。

为了详细说明功能,我可以做:[fragment_1] - > [fragment_2] - > [fragment_3],当按回时,应该返回[fragment_1]。

我的后退键有一个onClickListener,但我不知道如何实现这个功能。

2 个答案:

答案 0 :(得分:0)

你正在寻找这个

getSupportFragmentManager().popBackStack();

如果你不知道这是实际的android后退按钮的默认功能,那么除非你已经覆盖它,否则会做同样的事情。

答案 1 :(得分:0)

除非你找到你想要的那个,否则你只需要从你的背包中弹出所有碎片。使用FragmentManager的popBackStack()

可能是最简单的
  

public abstract void popBackStack(int id,int flags)

     

将所有后备堆栈状态弹出到具有给定标识符

的状态