在我的应用程序中,我有带有一些 fragment 的抽屉导航。当我在抽屉中选择时,我执行以下代码:
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, f, tag);
ft.commit();
在 MainActivity 中。
现在在一个 fragment 中,我想在屏幕底部放置一个 TabLayout,但我遇到了这样的麻烦:
- 是否可以将一个 fragment
替换
到另一个 fragment ?我可以在哪里放置 fragmentTransaction
?
- 如果我想调用第三个 fragment (例如其中一个选项卡 fragment 中的“发送”按钮),我可以对选项卡使用相同的功能吗?
谢谢你的回答
你可以这样做......
//when navigation item is selected by user
@Override
public void onDrawerItemSelected(View view, int position) {
displayView(position);
}
public void displayView(int position) {
String title = getString(R.string.app_name);
switch (position) {
case 0:
fragment = new UserProjectListFragment();
break;
case 1:
fragment = new ContactUsFragment();
break;
case 2:
fragment = new HelpFragment();
break;
case 3:
//and so on
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment).addToBackStack("fragBack");
fragmentTransaction.commit();
// set the toolbar title
getSupportActionBar().setTitle(title);
}
}
/对于您的问题,是否可以从一个 fragment 替换为另一个 fragment ?我可以把 fragmentTransaction 放在哪里?是的这样做
Fragment videoFragment = new VideoPlayerFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.video_fragment, videoFragment).commit();
我是一名优秀的程序员,十分优秀!