为什么在添加新片段时会触发backstack中的片段

时间:2018-03-27 08:14:21

标签: java android android-fragments back-stack fragment-backstack

发生了一些奇怪的事情......!

所以我在工具栏的中心有一个TextView活动作为工具栏标题,一旦活动启动,我提交MainFragment或者命名为Fragment (A)

  • 在片段(A)中,我用一个按钮替换片段(B) 被点击。
  • 在片段(B)中,我用片段(C)替换它 当点击一个按钮时。

所以在每个片段中我访问活动的工具栏文本视图并使用它来相应地更改它:

TextView title = getActivity().findViewById(R.id.titleText);
  title.setText("Some title");

它在Fragments(A)& (B),但在(C)中它显示片段(A)的标题? 我甚至在每个片段的onCreateView中打印了一个日志,这就是出现了......!

最后两个日志同时显示..!?

I/MY_TEST: onCreateView: of Fragment (A) I/MY_TEST: onCreateView: of Fragment (B) I/MY_TEST: onCreateView: of Fragment (C) I/MY_TEST: onCreateView: of Fragment (A)

更新

这是完整的点击监听器

orderDetailsButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AppCompatActivity activity = (AppCompatActivity) getActivity();
                Fragment fragment = new Teacher_Bar_Fragment();
                Bundle bundle = new Bundle();
                bundle.putInt("index", 1); // I use this to show or hide views
                fragment.setArguments(bundle);
                FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
                ft.replace(R.id.fragment_container, fragment);
                ft.addToBackStack(null);
                ft.commit();
            }
        });

0 个答案:

没有答案