先上效果图

在使用TabLayout 之前需要导入design包。 我使用的是android studio 只要在build.gradle中加入

compile 'com.android.support:design:24.2.0' 即可。

一、首先看一下布局文件
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"> <android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:tabIndicatorColor="@color/white"
app:tabSelectedTextColor="@color/red"
app:tabTextColor="@color/white"
>
</android.support.design.widget.TabLayout > <android.support.v4.view.ViewPager
android:id="@+id/viewpage"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"> </android.support.v4.view.ViewPager> </LinearLayout>

布局很简单,一个是TabLayout用来显示文字的,一个是ViewPage 用来真是页面内容的

其中
  app:tabIndicatorColor="@color/white"     // 选中项下面的标线颜色
  app:tabSelectedTextColor="@color/red"    // 选中时标题字体颜色
  app:tabTextColor="@color/white"        // 标题字体默认颜色

二、 我们看看 TabLayout 的适配器,很简单

package lyf.com.tablayoutdemo;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter; import java.util.List; /**
* lyf on 2016/9/24.
* Fragment 适配器
*/
public class TabAdapter extends FragmentPagerAdapter { //Fragment集合
private List<Fragment> listFragment;
//Tab名称集合
private List<String> listTitle; public TabAdapter(FragmentManager fm,List<Fragment> listF,List<String> listS) {
super(fm);
listFragment = listF;
listTitle = listS;
} @Override
public Fragment getItem(int position) {
return listFragment.get(position);
} @Override
public int getCount() {
return listFragment.size();
} @Override
public CharSequence getPageTitle(int position) {
return listTitle.get(position);
}
}

三、看看我们的主布局界面

package lyf.com.tablayoutdemo;

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager; import java.util.ArrayList;
import java.util.List; /**
* FragmentActivity 应该导入 android.support.v4.app.Fragment包
*/
public class MainActivity extends FragmentActivity { private List<Fragment> fragmentList = new ArrayList<>();
private List<String> titleList = new ArrayList<>(); private TabLayout tabLayout;
private ViewPager viewPager; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = (TabLayout) this.findViewById(R.id.tablayout);
viewPager = (ViewPager) this.findViewById(R.id.viewpage);
initControls();
} private void initControls() { fragmentList.add(new OneFragment());
fragmentList.add(new TwoFragment());
fragmentList.add(new ThreeFragment());
fragmentList.add(new FourFragment()); titleList.add("推荐");
titleList.add("视频");
titleList.add("热点");
titleList.add("娱乐"); //添加标签选项布局样式
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); tabLayout.addTab(tabLayout.newTab().setText(titleList.get(0)));
tabLayout.addTab(tabLayout.newTab().setText(titleList.get(1)));
tabLayout.addTab(tabLayout.newTab().setText(titleList.get(2)));
tabLayout.addTab(tabLayout.newTab().setText(titleList.get(3))); //设置页面选项
TabAdapter tabAdapter = new TabAdapter(this.getSupportFragmentManager(), fragmentList, titleList);
viewPager.setAdapter(tabAdapter);
tabLayout.setupWithViewPager(viewPager);
}
}

这里面的Fragment 就不贴出来了,大家可以用来展示自己的Fragment。这样我们的Demo 就结束了。

注意:包的引用 ViewPage和Fragment 都是引用 support.V4.app包里的。



TabLayout 简单使用。的更多相关文章

  1. TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签

    首先来看下实现的效果吧: 最近在项目中实现这个效果的时候.尽管自己磕磕绊绊的实现了,可是知识确实模模糊糊的,今天天气异常的冷,在加上这个知识不太熟练,实在是没有心情进行接下来的计划,干脆借着这个时间, ...

  2. Python爬取CSDN博客文章

    0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...

  3. 安卓Design包之TabLayout控件的简单使用

    Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...

  4. TabLayout和ViewPager简单实现页卡的滑动

    首先需要在当前的module中的build Gradle的 dependencies中加入以下句子 compile 'com.android.support:design:23.0.1' 因为我们用到 ...

  5. Android Material Design:滑动指示选项卡android.support.design.widget.TabLayout的简单使用

    该TabLayout的功用,简单的说,就是当用户在该TabLayout的选项卡子item中选择触摸时候,文字和下方的指示器横条滑动指示.这个功能就是以前APP开发常用的选项卡某一卡片被切换.选中时候的 ...

  6. 浅谈ViewPager与TabLayout的简单用法

      今天介绍一下ViewPager与TabLayout的简单用法 1.准备   在一切开始之前,你懂得,先导库,老方法,在build.gradle直接添加下面这一句   implementation ...

  7. 简单的TabLayout+Fragment选项卡

    TabLayout属性: app:tabIndicatorColor="#fff"  //下方滚动的下划线颜色 app:tabIndicatorHeight="10dp& ...

  8. TabLayout+ViewPager的简单使用

    1.   build.gradle文件中加入 compile 'com.android.support:design:22.2.0' 2.写Xml文件,注意TabLayout的三个属性 app:tab ...

  9. TabLayout+ViewPager制作简单导航栏

    先看样例,有图有真相 绑定viewpager 此处主要说明tablayout的使用方法,viewpager绑定fragment的介绍在其他文章说明 mBinding.tabsLayout.setupW ...

随机推荐

  1. JS 获取地址栏三级域名(改进版)

    <script type="text/javascript"> str="http://yl.www.tyg.com/index.php"; str ...

  2. python操作

    用python做OI题实在不是一个明智的选择 if __name__ == "__main__":相当于c艹的int main(),然而似乎没有也可以? 重定向标准输入输出流:sy ...

  3. HTML的文本格式化

    文本格式化:<html> <body> <b>This text is bold</b> <br /> <strong>This ...

  4. postgresql修改最大连接数

    1.合适的最大连接数 used_connections/max_connections在85%左右2.修改最大连接数postgresql最大连接数默认为1001)打开postgresql配置文件vim ...

  5. SQL Server 快捷键备忘

    Run the sp_help system stored procedure ALT+F1 Run the sp_who system stored procedure CTRL+1 Run the ...

  6. oracle数据库从入门到精通之三

    综合案例ddl&dml有一个商品数据库1.数据表的创建    ddl先编写数据库脚本--删除数据表drop table purcase purge;drop table product pur ...

  7. Codis集群

    一.简介 Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Re ...

  8. Yii2安装搭建和将入口文件移到根目录

    用Composer下载Yii2速度太慢了,所以我还是喜欢下载打包好的框架文件. 在https://github.com/yiisoft/yii2/releases 下载最新的的Yii2,advance ...

  9. C#如何利用QQ邮箱SMTP发送邮件

    public void SendEmail() { MailMessage msg = new MailMessage(); msg.To.Add("to@qq.com");//收 ...

  10. C#图像处理

    网站中,对用户图片上传处理是很有必要的.对于一些常用的处理,对图片各种形式的压缩,各种形式的水印. 1.裁剪正方形头像方法 /// <summary> /// 正方型裁剪 /// 以图片中 ...