一:先上布局

<?xml version="1.0" encoding="utf-8"?>               

二: 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 pagers;    private List 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





更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android(安卓)源代码目录结构2- build
  3. 第一行代码阅读笔记---详解分析第一个Android程序
  4. android for opencv (2) byte[] ,Bitmap 与 Mat 类型转换,Bitmap保
  5. android 8.1 Not allowed to start service Intent 无法后台开启
  6. Android(安卓)启动画面跳转和去掉标题栏
  7. Android(安卓)UI设计--ListView内嵌CheckBox的多选和删除
  8. [置顶] Android(安卓)怎么退出整个应用程序?__以及__按键事件捕获
  9. android 基于BroadcastReceiver广播 完全退出应用的实现代码 亲

随机推荐

  1. Android推送通知
  2. android加载.swf flash文件
  3. Android(安卓)设置铃声
  4. Android漂亮的Help提示框
  5. android之网络请求框架OKhttp、原生http
  6. android通用JSON解析
  7. android升级数据库(Sqlite)简单示例
  8. Android(安卓)studio 开发一个用户登录界
  9. Android(安卓)AnalogClock and DigitalCl
  10. android 控件 NumberPicker 简单使用