我有一个选项卡布局,其中包含3个选项卡项目,每个选项卡都有各自的片段,当被选中时可以在运行时加载。
MainActivity.class:
在此根据所选选项卡的位置调用LoadFragment。语句使用片段管理器加载适当的片段?我不想具有if else语句层次结构。tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { switch (tab.getPosition()) { case 0: LoadFragment(new LocationFragment()); break; case 1: LoadFragment(new InformationFragment()); break; case 2: LoadFragment(new CommentsFragment()); break; } }
我的问题是如何使用switch
private void LoadFragment(Fragment fragment) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
switch (*some logic here*) {
case fragment instanceof LocationFragment:
Log.i("MainActivity", "inside load fragment");
ft.replace(R.id.coordinate_layout, new LocationFragment());
break;
case fragment instanceof InformationFragment:
ft.replace(R.id.coordinate_layout, new InformationFragment());
break;
case fragment instanceof CommentsFragment:
ft.replace(R.id.coordinate_layout, new CommentsFragment());
break;
ft.commit();
}
}
我有一个选项卡布局,其中包含3个选项卡项目,每个选项卡都有其自己的片段,在被选中时会在运行时加载。 MainActivity.class:在此根据所选选项卡的位置调用LoadFragment。 tabLayout ....
您不需要多次创建实例,您只需传递类型,在加载时就可以决定需要加载哪个片段。