Android中横向滑动(TabLayout+ViewPager)的实现

来源:互联网 发布:美国博士申请 知乎 编辑:程序博客网 时间:2024/05/24 06:41
注意:在使用TabLayout时当前moudle必须在builder.gradle文件中添加TabLayout的远程依赖(
compile 'com.android.support:design:26+'


核心代码如下:


package com.example.tabviewpager;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    private TabLayout tabLayout;    private ViewPager viewPager;    //模拟数据用的容器    private ArrayList<Fragment> list = new ArrayList<Fragment>();    private ArrayList<String> list2 = new ArrayList<String>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化组件        tabLayout = (TabLayout) findViewById(R.id.tl_title);        viewPager = (ViewPager) findViewById(R.id.vp_view);        //调用初始化数据的方法(初始化数据)        initdata();        //实例化ViewPager适配器(传入Frament管理对象)        MAdapter mAdapter = new MAdapter(getSupportFragmentManager());        //设置标题栏标题展示的模式(每个标题在标题栏的摆放位置)        tabLayout.setTabMode(TabLayout.MODE_FIXED);        //为标题设置对应显示的ViewPager界面        tabLayout.setupWithViewPager(viewPager);        //ViewPager添加适配器        viewPager.setAdapter(mAdapter);    }    //此方法用于向容器添加模拟数据    private void initdata() {        for (int i = 1; i <= 4; i++) {            list.add(new Fragment01());        }        for (int i = 1; i <= 4; i++) {            list2.add("爱迪生" + i);        }    }    // 定义ViewPager的适配器的类    class MAdapter extends FragmentPagerAdapter {        public MAdapter(FragmentManager fm) {            super(fm);        }        //此方法用于返回,容器中装有的Fragment        @Override        public Fragment getItem(int i) {            return list.get(i);        }        //此方法根据Fragment的数量去创建Viewpager的界面        @Override        public int getCount() {            return list.size();        }        //此方法用于返回装有标题容器中的标题        @Override        public CharSequence getPageTitle(int position) {            return list2.get(position);        }    }}


阅读全文
0 0
原创粉丝点击