从另一个活动中调用片段,但两者都同时显示吗?

时间:2018-10-21 08:18:05

标签: android android-fragments android-activity

因此,我使用一个按钮从活动A / Fragment4转到活动B,然后使用一个按钮从活动B返回活动A / Fragment4。我已经将前进动作完美地工作了,而后退动作也可以正常工作,活动B和片段4现在同时在同一屏幕上,这意味着活动B没有被删除/销毁。这是onClick()Fragment4的代码。

  public void onClick(View view) {
            Intent intent=new Intent(getContext(), ActivityBActivity.class);
            startActivity(intent);
            getActivity().finish();
            Log.d("BASE_FRAGMENT", "Activity should have been started here");
        }
    });

这是来自活动B的onClick()中的代码。

android.support.v4.app.FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
            transaction.replace(R.id.fragment_container,new Fragment4Fragment());
            transaction.addToBackStack(Fragment4Fragment.class.getName()null);
            transaction.commit();

我尝试使用finish();但这只会关闭整个应用程序。并且addToBackStack行似乎没有什么不同。我什至已将清单中的noHistory语句设置为true,没有帮助。

1 个答案:

答案 0 :(得分:0)

如果您的片段正在活动A 中打开,则应使用后退按钮。因为按下后退按钮将打开活动A ,也是片段,因为它在活动A上是打开的。

如果您的活动A 未打开,则首先必须从活动B 中打开活动A ,然后打开片段< / strong>形成活动A。

如果您使用 addtobackstack 添加片段,则意味着后退按钮首先适用于片段,就像活动一样。

如果您对我的回答有任何疑问,我会帮助您。