Android design包 TabLayout

android 5.0 的新特性 主要是配合ViewPager来使用,很多项目中都会用到这个东西,我就简单来记录一下。
先写基本用吗 xml文件里面




然后在activity里面初始化控件,然后就是需要新建fragment 新建一个adapter,先上一个简单adapter的代码

private ArrayList mArrayList;//存放fragment的集合
private ArrayList mStrings;//存放标题的集合

public MyVpAdapter(FragmentManager fm, ArrayList mArrayList, ArrayList mStrings) {
    super(fm);
    this.mArrayList = mArrayList;
    this.mStrings = mStrings;
}

@Override
public Fragment getItem(int position) {
    return mArrayList.get(position);
}

@Override
public int getCount() {
    return mArrayList == null ? 0 : mArrayList.size();//判空
}

@Override
public CharSequence getPageTitle(int position) {
    return mStrings.get(position);//获取对应的标题,然后赋值给对应的tablaout

fragment就是简单的继承一下fragment就可以了,然后填充一下布局,就没那么简单 代码不上了,然后就是activity的代码。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTabLayout = (TabLayout) findViewById(R.id.tab);
    mViewPager = (ViewPager) findViewById(R.id.vp);
    mStringArrayList = new ArrayList<>();
    mFragmentArrayList = new ArrayList<>();
    for (int i = 0; i < count; i++) {//造假数据
        int pages = i + 1;
        mStringArrayList.add("页面=----->" + pages);
    }
    for (int i = 0; i < mStringArrayList.size(); i++) {//把fragment添加到集合中
        Fragment fragment = new TestFragment();
        Bundle bundle = new Bundle();
        bundle.putString("key", mStringArrayList.get(i));
        fragment.setArguments(bundle);
        mFragmentArrayList.add(fragment);
    }
    MyVpAdapter myVpAdapter = new MyVpAdapter(getSupportFragmentManager(), mFragmentArrayList, mStringArrayList);
    mViewPager.setAdapter(myVpAdapter);//给viewpager添加适配器
    mTabLayout.setupWithViewPager(mViewPager);//tablayout和viewpager建立联系,,这个很重要
    mTabLayout.setSelectedTabIndicatorHeight(2);//设置tablayout底部滑标的高度
    mTabLayout.setSelectedTabIndicatorColor(Color.YELLOW);//设置滑标颜色 现在是黄色

// for (int i = 0; i < mTabLayout.getTabCount(); i++) {
// TabLayout.Tab tb = mTabLayout.getTabAt(i);//获取对应位置的tab
// tb.setIcon(R.mipmap.ic_launcher);//设置tab的图标
// }
//设置标题的正常颜色和选择颜色
mTabLayout.setTabTextColors(Color.GREEN, Color.RED);
//设置标题的背景色
// mTabLayout.setBackgroundColor(Color.MAGENTA);
}

Android design包 TabLayout_第1张图片
效果图.png

是不是感觉很丑 并不是我们想要的那种效果,那么就在xml文件的tablyout里面添加一行代码


Android design包 TabLayout_第2张图片
效果图2.png

是不是好看多了 , 没那么丑了。还可以设置图片加文字 或者单纯的图片,注释掉的代码放开后,你就会发现是图片加文字的效果了。
这里写的是一些简单的使用,基本上能够满足使用,骚操作的话问百度吧。

你可能感兴趣的:(Android design包 TabLayout)