40.TabLayout的简单使用

来源:互联网 发布:关于淘宝的ppt 编辑:程序博客网 时间:2024/04/27 21:20

转载请注明出处 http://blog.csdn.net/qq_31715429/article/details/51889498
本文出自:猴菇先生的博客

TabLayout是android.support.design包下的一个空间,可以轻松实现选项卡标签和ViewPager的联动效果
1.在build.gradle中:

...dependencies {    ...    compile 'com.android.support:design:24.0.0-beta1'    ...}

2.要使用这个控件,Theme需要是AppCompat主题

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"></style>

3.activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <android.support.design.widget.TabLayout        xmlns:android="http://schemas.android.com/apk/res/android"        xmlns:app="http://schemas.android.com/apk/res-auto"        android:id="@+id/tab_layout"        android:layout_width="match_parent"        android:layout_height="@dimen/base_textline_h"        android:background="@color/base_white"        app:tabIndicatorColor="@color/product_detail_tab_indicator"//指示器颜色        app:tabMaxWidth="0dp"//解决在平板上fixed模式不铺满的问题        app:tabSelectedTextColor="@color/product_detail_tab_indicator"//选中的文字颜色        app:tabTextAppearance="@style/MyTabLayoutTextAppearance"//自定义标签字体大小        app:tabTextColor="@color/product_detail_tab_text" />//默认的文字颜色    <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>

4.自定义标签字体大小

<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">        <item name="android:textSize">@dimen/tab_layout_text</item></style>

5.MainActivity.java

public class MainActivity extends AppCompatActivity{    private TabLayout mTabLayout;    private ViewPager mViewPager;    private TabFragmentPagerAdapter mPagerAdapter;    private String[] mTabArr = {"a", "b", "c"};     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mTabLayout = (TabLayout) findViewById(R.id.tab_layout);        mViewPager = (ViewPager) findViewById(R.id.viewPager);        mTabLayout.setTabMode(TabLayout.MODE_FIXED);//铺满屏幕,适用于数据量少的        //mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);//超出屏幕可滚动,适用于数据量多的        for(int i = 0 ; i < mTabArr.length ; i++){            mTabLayout.addTab(mTabLayout.newTab().setText(mTabArr[i]));        }        mPagerAdapter = new TabFragmentPagerAdapter(getSupportFragmentManager());        mViewPager.setAdapter(mPagerAdapter);        mTabLayout.setupWithViewPager(mViewPager);//TabLayout与ViewPager绑定联动    }}
   private class TabFragmentPagerAdapter extends FragmentPagerAdapter {       public TabFragmentPagerAdapter(FragmentManager fm) {           super(fm);       }       @Override       public Fragment getItem(int position) {           Fragment fragment = new MainFragment();           Bundle bundle = new Bundle();           bundle.putString(INDEX, position);           fragment.setArguments(bundle);           return fragment;       }       @Override       public int getCount() {           return mTabArr.length;       }        //不重写此方法TabLayout不显示标签名       @Override       public CharSequence getPageTitle(int position) {           return mTabArr[position];       }}
0 0
原创粉丝点击