相关疑难解决方法(0)

Android Fragment处理后退按钮按下

我的活动中有一些片段

[1], [2], [3], [4], [5], [6]
Run Code Online (Sandbox Code Playgroud)

如果当前活动片段为[2],则必须从[2]返回[1],否则不执行任何操作.

这样做的最佳做法是什么?

编辑:申请不得从[3] ...... [6]返回[2]

android android-fragments

302
推荐指数
18
解决办法
48万
查看次数

addToBackStack()不起作用

我有我的MainActivity管理两个一起工作的片段.我的一个方法是ListFragment上的监听器接口,MainActivity负责切换片段.

但由于某种原因,似乎addToBackStack不起作用.当我点击列表时,转到下一个片段并点击设备的后退按钮......它只是在设备主屏幕上的应用程序之外.

谁知道问题是什么?

@Override
public void OnSelectionChanged(Object object) {
    DetailFragment DetailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detail_fragment);

    if (DetailFragment != null) {
        DetailFragment.setTitle(object);
    } else {
        DetailFragment newDetailFragment = new DetailFragment();
        Bundle args = new Bundle();

        args.putSerializable(DetailFragment.KEY_POSITION,object);
        newDetailFragment.setArguments(args);
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

        fragmentTransaction.replace(R.id.fragment_container, newDetailFragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-fragments

5
推荐指数
1
解决办法
3020
查看次数

如何在片段交易中添加标签?

FragmentActivity像这样向我添加一个:

getSupportFragmentManager()
            .beginTransaction()              
            .add(R.id.frame_container, fragment)
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .addToBackStack(fragment.getClass().getName())
            .commit();
Run Code Online (Sandbox Code Playgroud)

但是当我想找到Fragment使用时,FragmentManager它返回null:

 Fragment oldFragment = (Fragment) getSupportFragmentManager().findFragmentByTag(fragment.getClass().getName());
Run Code Online (Sandbox Code Playgroud)

android android-fragments fragment-backstack

1
推荐指数
1
解决办法
2784
查看次数