Android5.0新组件TabLayout+ViewPager实现Tab页面
来源:互联网 发布:dota2 mac怎么全屏 编辑:程序博客网 时间:2024/04/30 06:20
本来算是个鸡肋的东西,但是design兼容包发布之后情况就大不一样了。
下面看代码:
首先在gradle中添加依赖
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:design:22.2.1' compile 'com.android.support:recyclerview-v7:22.2.1' compile 'com.android.support:cardview-v7:22.2.1' compile files('libs/universal-image-loader-1.9.4.jar') compile project(':ImageViewTouch')}值得一提的是,design包整合了v4和v7的包,所以添加之后就不需要再添加v4和v7。
然后就是在Activity或者Fragment中添加TabLayout和ViewPager
<android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabGravity="fill" app:tabMode="fixed" app:tabSelectedTextColor="?attr/colorAccent" app:tabTextColor="#fff" /> <android.support.v4.view.ViewPager android:id="@+id/mainPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/tabLayout" />tabGravity和tabMode能让你的Tab变的更加丰富
下面创建ViewPager页面,我就不代码演示了
继承PagerAdapter创建MyPagerAdapter
public class MyPagerAdapter extends PagerAdapter { private List<View> viewList; private String[] titles; public MyPagerAdapter(List<View> viewList, String[] titles) { this.viewList = viewList; this.titles = titles; } @Override public int getCount() { return viewList.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewList.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewList.get(position)); return viewList.get(position); } @Override public CharSequence getPageTitle(int position) { return titles[position]; }}
最后,ViewPager通过PagerAdapter绑定Pager页面,TabaLayout绑定ViewPager
tabLayout = (TabLayout) findViewById(R.id.tabLayout); mainPager = (ViewPager) findViewById(R.id.mainPager); LayoutInflater inflater = getLayoutInflater(); facePager = inflater.inflate(R.layout.face_layout, null); modelPager = inflater.inflate(R.layout.model_layout, null); viewList = new ArrayList<View>(); viewList.add(facePager); viewList.add(modelPager); titles = new String[]{"表情", "模板"}; MyPagerAdapter myPagerAdapter = new MyPagerAdapter(viewList, titles); mainPager.setAdapter(myPagerAdapter); tabLayout.setupWithViewPager(mainPager);//将viewPager绑定于tabLayout
要注意的是,viewList的Size和titles的Size一定要是相同的,要不然,后果自己想。
好了,Tab页面就算实现完成了,是不是特别简单呢?
1 0
- Android5.0新组件TabLayout+ViewPager实现Tab页面
- 利用TabLayout+ViewPager+Fragment实现可滚动的Tab页面
- TabLayout+ViewPager实现tab和页面联动效果
- Android5.0 之 TabLayout配合ViewPager实现界面切换
- Android TabLayout、ViewPager实现顶部和底部Tab导航 点击滑动切换Tab页面
- TabLayout、ViewPager实现页面切换
- TabLayout + ViewPager 实现 页面滑动
- TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签
- TabLayout与ViewPager组合实现tab导航
- Android TabLayout与ViewPager实现动态Tab
- ViewPager+Tablayout实现页面标题联动效果
- TabLayout+ViewPager 简单实现app底部Tab布局
- 使用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab
- 使用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab
- Tablayout+viewpager+fragment实现tab导航以及滑动切换
- 安卓 TabLayout+ViewPager实现滑动Tab效果
- 使用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab
- 自定义tab,viewpager实现仿tablayout切换效果
- java中Date与String的相互转化
- 各种代数结构(抽象代数)总结,仿射空间和点的数学定义
- C++ 折半插入排序算法
- Reverse Integer
- utf-8转GB2312
- Android5.0新组件TabLayout+ViewPager实现Tab页面
- BZOJ3262: 陌上花开 CDQ
- 大神对指针和链表的形象解释
- windows安装protoc
- XML中必须进行转义的字符
- 对zebra的一点思考(Think Of ZEBRA)
- UIColor,CGColor,CIColor三者 区别和联系
- 内部类
- Python 3 FTP 弱口令&匿名服务器扫描器