如何从一个片段切换到另一个片段 android
how to switch from one fragment to another fragment android
你好,我有 5 个片段现在第一次当我去 Activity
那个片段然后默认第一个片段被调用,然后在第一个 Fragment
有一个按钮通过点击那个按钮我去到第二个片段,类似地在第二个片段中有一个按钮,单击该按钮我转到第三个片段,依此类推。
现在我的问题是当前我在第五个片段上,现在我想从第五个片段转到第二个片段,我该怎么办?
谁能告诉我一下吗?
您可以按名称弹出片段。在将片段添加到返回堆栈时,只需给它们命名即可。
fragmentTransaction.addToBackStack("frag2");
然后在 fragment5 中,使用名称 ie.. frag2
弹出返回堆栈并包含 POP_BACK_STACK_INCLUSIVE
someButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity()
.getSupportFragmentManager();
fm.popBackStack ("frag2", FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
});
你总是可以这样做:)
getActivity().getSupportFragmentManager().replace(R.id.yourFrameLayout,new Fragment2(),"FRAG2");
OR
Fragment fragment = getActivity().getSupportFragmentManager().findFragmentByTag("FRAG2");
getActivity().getSupportFragmentManager().replace(R.id.yourFrameLayout,,"FRAG2");
试试这个代码:
Fragment fragment = new SecondFragmentName();
FragmentManager fm = getActivity().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.commit();
只是对 mudit_sen 代码的小修正。仅当您添加 .beginTransaction 时,它才有效。谢谢。
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.FrameLayoutId,new FragmentName()).commit();
这里是添加和替换片段的方法。
public void addReplaceFragment(Fragment fragment, int addOrReplace) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
switch (addOrReplace) {
case addFragment:
transaction.add(R.id.frame_containerforsearchable, fragment);
transaction.commit();
break;
case replaceFragment:
transaction.replace(R.id.frame_containerforsearchable, fragment);
transaction.commit();
break;
default:
break;
}
}
片段的调用是..
addReplaceFragment(currencyFragmentWithSearch, replaceFragment);
- replaceFragment整型变量
- currencyFragmentWithSearch 片段实例
你好,我有 5 个片段现在第一次当我去 Activity
那个片段然后默认第一个片段被调用,然后在第一个 Fragment
有一个按钮通过点击那个按钮我去到第二个片段,类似地在第二个片段中有一个按钮,单击该按钮我转到第三个片段,依此类推。
现在我的问题是当前我在第五个片段上,现在我想从第五个片段转到第二个片段,我该怎么办? 谁能告诉我一下吗?
您可以按名称弹出片段。在将片段添加到返回堆栈时,只需给它们命名即可。
fragmentTransaction.addToBackStack("frag2");
然后在 fragment5 中,使用名称 ie.. frag2
弹出返回堆栈并包含 POP_BACK_STACK_INCLUSIVE
someButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity()
.getSupportFragmentManager();
fm.popBackStack ("frag2", FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
});
你总是可以这样做:)
getActivity().getSupportFragmentManager().replace(R.id.yourFrameLayout,new Fragment2(),"FRAG2");
OR
Fragment fragment = getActivity().getSupportFragmentManager().findFragmentByTag("FRAG2");
getActivity().getSupportFragmentManager().replace(R.id.yourFrameLayout,,"FRAG2");
试试这个代码:
Fragment fragment = new SecondFragmentName();
FragmentManager fm = getActivity().getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.commit();
只是对 mudit_sen 代码的小修正。仅当您添加 .beginTransaction 时,它才有效。谢谢。
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.FrameLayoutId,new FragmentName()).commit();
这里是添加和替换片段的方法。
public void addReplaceFragment(Fragment fragment, int addOrReplace) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
switch (addOrReplace) {
case addFragment:
transaction.add(R.id.frame_containerforsearchable, fragment);
transaction.commit();
break;
case replaceFragment:
transaction.replace(R.id.frame_containerforsearchable, fragment);
transaction.commit();
break;
default:
break;
}
}
片段的调用是..
addReplaceFragment(currencyFragmentWithSearch, replaceFragment);
- replaceFragment整型变量
- currencyFragmentWithSearch 片段实例