如何使用工具栏在标签布局中设置起始标签?

时间:2016-08-05 12:34:46

标签: android android-fragments android-tablayout

对不起,我的英语不流利。 我想在标签布局中更改起始片段。 来自另一个活动的值有意图。 所以我只想用我的选择开始标签布局的片段。

这是主要活动的onCreate()

public class MainActivity extends AppCompatActivity {

    private SectionsPagerAdapter mSectionsPagerAdapter;
    private ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        // Create the adapter that will return a fragment for each of the three
        // primary sections of the activity.
        mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
        // Set up the ViewPager with the sections adapter.
        mViewPager = (ViewPager) findViewById(R.id.container);
        mViewPager.setAdapter(mSectionsPagerAdapter);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(mViewPager);

    }

这是改变片段

的代码
    public class SectionsPagerAdapter extends FragmentPagerAdapter {

        public SectionsPagerAdapter(FragmentManager fm) {
                super(fm);

        }

        @Override
        public Fragment getItem(int position) {
            switch(position)
            {
                case 0:
                    return new TotalFragment();
                case 1:
                    return new StatsFragment();
                case 2:
                    return new FeedbackFragment();
                case 3:
                    return new ManageFragment();
            }
            return null;
        }

        @Override
        public int getCount() {
            return 4;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            switch (position) {
                case 0:
                    return "TOTAL";
                case 1:
                    return "STATS";
                case 2:
                    return "FEEDBACK";
                case 3:
                    return "MANAGE";
            }
            return null;
        }
    }
}

2 个答案:

答案 0 :(得分:3)

Jisu Lee,我们可以在setCurrentItem()的帮助下将选项卡布局中的起始选项卡设置为viewpager。 我们可以设置两种类型:

示例: 1. 简单设置标签:

说明:设置当前选择的页面。如果ViewPager已经通过其当前适配器的第一个布局,则当前项和指定项之间将存在平滑的动画过渡。

 viewPager.setCurrentItem(1);

2. 启用smoothScroll:

Secand参数“True”可以顺利滚动到新项目“false”立即转换

 viewPager.setCurrentItem(1, true);

或者为了获得CurrentItem,我们有: viewPager.getCurrentItem();

它将返回起始标签索引(int)。

答案 1 :(得分:1)

mViewPager.setCurrentItem({index you want}, true);