TabLayout与ViewPager的使用
2016-07-05 15:10
281 查看
一:先上布局
<?xml version="1.0" encoding="utf-8"?> <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 android:id="@+id/tl_pgtitle" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp_list" android:layout_width="match_parent" android:layout_weight="8" android:layout_height="0dp"> </android.support.v4.view.ViewPager> </LinearLayout>二:TabLayout是Android原生的,倒入依赖com.android.support:design:23.4.0,或者在build.gradle的dependencies中添加compile'com.android.support:design:23.4.0。三:下面的代码将TabLayout与ViewPager关联起来了
TabLayout tlPgtitle;
ViewPager viewpager;
viewpager.setAdapter(new TvListVpAdapter(TVListActivity.this)); tablayout.setupWithViewPager(viewpager);
下面这两句是用来将TabLayout撑满屏幕的。
tlPgtitle.setTabGravity(TabLayout.GRAVITY_FILL); tlPgtitle.setTabMode(TabLayout.MODE_FIXED);
四:TabLayout想要设置标题,只需要在ViewPager的适配器中重写getPageTitle(int position)就行
下列代码是上面ViewPager的适配器的代码,我创建了ViewPager的四个字pager,分别在四个子Pager中添加了Listview。package com.xzsx.tvphonexzs.utils.adapter; import android.app.Activity; import android.content.Context; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.TextView; import com.xzsx.tvphonexzs.utils.activity.LookLiveActivity; import java.util.ArrayList; import java.util.List; /** * Created by QQ774629431 */ public class TvListVpAdapter extends PagerAdapter { private Context mcontext; private List<ListView> pagers; private List<String> pagerTitles; private ListView listView; public TvListVpAdapter(Context context){ mcontext=context; initView(); } public void initView(){ pagers=new ArrayList<>(); pagerTitles=new ArrayList<>(); pagerTitles.add("央视"); pagerTitles.add("卫视"); pagerTitles.add("体育"); pagerTitles.add("全部"); for (int i = 0; i < 4 ; i++) { listView=new ListView(mcontext); listView.setAdapter(new TvListLvView(mcontext)); pagers.add(listView); } } @Override public CharSequence getPageTitle(int position) { return pagerTitles.get(position); } @Override public int getCount() { return pagers.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ListView listView=pagers.get(position); container.addView(listView); return listView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }
四:TabLayout想要设置标题的图标,一种是使用
tlTitle.getTabAt(0).setText("标题1"); tabLayout.getTabAt(0).setIcon(R.drawable.icon_title);
另一种使用tabLayout.getTabAt(0).setCustom(View view),里面的view指定一种自己的布局就行。
下列的文章介绍的也挺好的,推荐不明白的小伙伴也可以参考一下http://blog.csdn.net/chenguang79/article/details/48804125
相关文章推荐
- Android App开发中ViewPager组件的入门使用教程
- 使用ViewPager实现高仿launcher左右拖动效果
- Android App中用Handler实现ViewPager页面的自动切换
- Android应用中使用ViewPager实现类似QQ的界面切换效果
- Android中ViewPager组件的基本用法及实现图片切换的示例
- 灵活使用Android中ActionBar和ViewPager切换页面
- Android实现千变万化的ViewPager切换动画
- Android中viewPager使用指南
- Android 使用 ViewPager循环广告位的实现
- Android中ViewPager实现滑动指示条及与Fragment的配合
- 详解Android App中ViewPager使用PagerAdapter的方法
- Android viewpager中动态添加view并实现伪无限循环的方法
- Android应用中使用ViewPager和ViewPager指示器来制作Tab标签
- Android ViewPager制作新手导航页(动态加载)
- 详解Android App中创建ViewPager组件的方法
- Android App中ViewPager与Fragment结合的一些问题解决
- 实现轮转广告带底部指示的自定义ViewPager控件
- 自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果
- 实例讲解Android中ViewPager组件的一些进阶使用技巧
- Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果