如何使用工具栏在选项卡布局中设置起始选项卡?

jis*_*lee 3 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);

    }
Run Code Online (Sandbox Code Playgroud)

这是在片段中更改的代码

    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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

A-D*_*ech 9

Jisu Lee,我们可以借助 setCurrentItem() 来设置选项卡布局中的起始选项卡到viewpager。我们可以通过两种类型设置它:

示例: 1.简单设置选项卡:

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

 viewPager.setCurrentItem(1);
Run Code Online (Sandbox Code Playgroud)

2.启用 smoothScroll :

第二个参数 “True”平滑滚动到新项目,“false”立即转换

 viewPager.setCurrentItem(1, true);
Run Code Online (Sandbox Code Playgroud)

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

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