如何替换选项卡上的片段?

how to replace fragments on tab?

我有一个带有 2 个标签的 activity。我想做的是在按下每个选项卡时在 2 个片段之间进行替换。我也有2个片段:fragmentone和fragmentTwo.When选项卡一个被按下,我想显示fragmentone,当按下标签两个时,我想显示fragmenttwo。 我不确定我是否应该在 activity 中创建一个容器布局并添加 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

我该怎么做?

改用 ViewPager

在视图寻呼机中设置一个适配器并将其与 TabLayout using

一起使用
tabLayout.setupWithViewPager(viewPager);

您可以按照以下方式进行:

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了解更多信息