Android 带TabLayout的ViewPager

示例

TabLayout可以使用A来简化导航。
您可以使用方法为适配器中的每个片段设置选项卡,但是此任务还有另一个更方便,更轻松的方法。TabLayout.newTab()TabLayout.setupWithViewPager()

ViewPager每次调用该方法时,都会根据与您关联的适配器的内容创建和删除选项卡来进行同步。
而且,它将设置一个回调,因此,每次用户翻动页面时,都会选择相应的选项卡。

只需定义一个布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout>

    <android.support.design.widget.TabLayout

        android:id="@+id/tabs"

        app:tabMode="scrollable" />

    <android.support.v4.view.ViewPager

        android:id="@+id/viewpager"

        android:layout_width="match_parent"

        android:layout_height="0px"

        android:layout_weight="1" />

</LinearLayout>

然后实施FragmentPagerAdapter并将其应用于ViewPager:

public class MyViewPagerActivity extends AppCompatActivity {

    private static final String TAG = MyViewPagerActivity.class.getName();

    private MyPagerAdapter mFragmentAdapter;

    private ViewPager mViewPager;

    private TabLayout mTabLayout;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);    

        setContentView(R.layout.myActivityLayout);

        // 获取ViewPager并应用PagerAdapter

        mFragmentAdapter = new MyPagerAdapter(getSupportFragmentManager());    

        mViewPager = (ViewPager) findViewById(R.id.view_pager);

        mViewPager.setAdapter(mFragmentAdapter);

        // 将tabLayout和viewpager链接在一起

        mTabLayout = (TabLayout) findViewById(R.id.tab_layout);

        mTabLayout.setupWithViewPager(mViewPager);

    }

    private class MyPagerAdapter extends FragmentPagerAdapter{

        public MyPagerAdapter(FragmentManager supportFragmentManager) {

            super(supportFragmentManager);

        }

         // 返回要为该页面显示的片段

        @Override

        public Fragment getItem(int position) {

            switch(position) {

                case 0:

                    return new Fragment1();

                case 1:

                    return new Fragment2();

                case 2:

                    return new Fragment3();

                default:

                    return null;

            }

        }

        

        // 将显示为标签的标签

        @Override

        public CharSequence getPageTitle(int position) {

            switch(position) {

                case 0:

                    return "Fragment 1 title";

                case 1:

                    return "Fragment 2 title";

                case 2:

                    return "Fragment 3 title";

                default:

                    return null;

            }

        }

        // 返回总页数 

        @Override

        public int getCount() {

            return 3;

        }

    }

}

           

以上是 Android 带TabLayout的ViewPager 的全部内容, 来源链接: utcz.com/z/334549.html

回到顶部