关于TabLayout+ViewPager的用法

来源:互联网 发布:网络打印提示被挂起 编辑:程序博客网 时间:2024/03/29 06:53

安卓在5.0之后提出的Mertieral Design,我现在主流的布局习惯主要是TabLayou+ViewPager(Fragment)

compile 'com.android.support:design:24.2.1'

首先添加依赖库;
然后直接上布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <android.support.design.widget.TabLayout        android:id="@+id/activity_main_tab"        android:layout_width="match_parent"        android:layout_height="wrap_content"        app:tabIndicatorColor="@color/colorAccent"        app:tabSelectedTextColor="@color/colorAccent"        app:tabTextColor="@color/colorAccent" />    <android.support.v4.view.ViewPager        android:id="@+id/activity_main_vp"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1" /></LinearLayout>

app:tabIndicatorColor=”@color/colorAccent” 这个主要是设置tab的下划线的颜色。
app:tabSelectedTextColor=”@color/colorAccent” 这个主要是设置选择后字体的颜色。
app:tabTextColor=”@color/colorAccent” 这个是设置字体的颜色。

下面就是activity的代码:(注意:一定要是v4包下的fragment)

public class MainActivity extends AppCompatActivity {    private TabLayout activity_main_tab;    private ViewPager activity_main_vp;    //title    private List<String> title = new ArrayList<>();    //fragment的界面    private List<Fragment> fragments = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    //初始化控件    public void initView() {        activity_main_tab = (TabLayout) findViewById(R.id.activity_main_tab);        activity_main_vp = (ViewPager) findViewById(R.id.activity_main_vp);        //设置tab铺满        activity_main_tab.setTabMode(TabLayout.MODE_FIXED);        //增加界面        fragments.add(new MainNumbFragment());        fragments.add(new MainQRcordFragment());        fragments.add(new MainIdentifyFragment());        fragments.add(new MainChuanFragment());        //增加标题        title.add("验证码");        title.add("二维码");        title.add("身份证");        title.add("传真件");        MyPagerAdapt myPagerAdapt = new MyPagerAdapt(getSupportFragmentManager(), fragments);        activity_main_vp.setAdapter(myPagerAdapt);        //将TabLayout和ViewPager关联起来(setupWithViewPager必须在setAdapter之后调用)        //否则将抛出异常(IllegalArgumentException)        activity_main_tab.setupWithViewPager(activity_main_vp);        //给tabs设置适配器        activity_main_tab.setTabsFromPagerAdapter(myPagerAdapt);    }    /**     * 适配器     */    public class MyPagerAdapt extends FragmentPagerAdapter {        private List<Fragment> fragments;        public MyPagerAdapt(FragmentManager fm, List<Fragment> fragments) {            super(fm);            this.fragments = fragments;        }        @Override        public Fragment getItem(int position) {            return fragments.get(position);        }        @Override        public int getCount() {            return fragments.size();        }        @Override        public CharSequence getPageTitle(int position) {            return title.get(position);        }    }}

fragment就不贴出来了,很简单都是一样的。

0 0
原创粉丝点击