【问题标题】:how to replace fragments on tab?如何替换选项卡上的片段?
【发布时间】:2017-10-24 18:54:37
【问题描述】:

我有一个包含 2 个标签的活动。我试图做的是在按下每个选项卡时在 2 个片段之间进行替换。我也有 2 个片段:fragmentOne 和 fragmentTwo。当按下选项卡一时我想显示 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

当 case i 1 我想显示 fragmentTwo

我该怎么做?

【问题讨论】:

标签: android android-fragments android-tabhost android-tablayout


【解决方案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了解更多信息

【讨论】:

  • 教程对我很有帮助
【解决方案2】:

请改用ViewPager

在视图分页器中设置一个适配器并将其与TabLayout 一起使用

tabLayout.setupWithViewPager(viewPager);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多