我有一个包含2个标签的活动。我试图做的是在每个标签被按下时替换2个片段。我还有2个片段:fragmentOne和fragmentTwo。当按下tab一个我要显示fragmentOne时,当按下tab 2时我想显示fragmentTwo。 我不确定我是否应该在活动中创建一个容器布局,并添加了fragmentOne和fragmentTwo,或者还有另外一种方法可以做到这一点?
这是我的代码
public class InboxActivity extends AppCompatActivity {
private TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inbox);
tabLayout = (TabLayout)findViewById(R.id.tabLayout);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
Fragment fragment;
int position = tab.getPosition();
//requests = position - 0
//invitations = position - 1
switch (position){
case 0:
break;
case 1:
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
当case为0时我想显示fragmentOne
当情况i 1我想要展示fragmentTwo
我该怎么做?
答案 0 :(得分:1)
您可以按照以下方式执行此操作:
public void onTabSelected(TabLayout.Tab tab) {
Fragment fragment = null;
switch (tab.getPosition()) {
case 0:
fragment = new FirstFragment();
break;
case 1:
fragment = new SecondFragment();
break;
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.simpleFrameLayout, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
以下是tutorial以获取更多信息
答案 1 :(得分:0)
请改用ViewPager
。
在视图寻呼机中设置适配器,并使用<{1}}使用
TabLayout