先上效果图

在使用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. Immutable 详解

    Shared mutable state is the root of all evil(共享的可变状态是万恶之源) -- Pete Hunt 有人说 Immutable 可以给 React 应用带来 ...

  2. ASP.NET MVC5 实现网址伪静态

    一.路由规则: routes.MapRoute( name: "Default1", url: "more_{root}_{plate}.html", defa ...

  3. ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问

    sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...

  4. 动态加载(异步加载)jquery/MUI类库 页面加载完成后加载js类库

    动态加载Mui类库: // ==UserScript== // @name // @version 1.4.0 // @author zzdhidden@gmail.com // @namespace ...

  5. web三种跨域请求数据方法

    以下测试代码使用php,浏览器测试使用IE9,chrome,firefox,safari <!DOCTYPE HTML> <html> <head>     < ...

  6. About SSDT BI

    Welcome to Microsoft Marketing Speak hell. With the 2012 release of SQL Server, the BIDS, Business I ...

  7. Shiro启用注解方式

    shiro验证权限方式一种是基于url配置文件: 例如: <bean id="shiroFilter" class="org.apache.shiro.spring ...

  8. ARM指令分类及其寻址方式

    ARM指令分类及其寻址方式 一:ARM指令的分类 ARM指令集可以分为以下6类: •跳转指令: •数据处理指令: •程序状态寄存器(PSR)传输指令: •load/store指令: •协处理器指令: ...

  9. 集合Collection

    /* * 集合的由来: * 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储. * 而要想存储多个对象,就不能是一个基本 ...

  10. varnish 4.0.3 域名访问的小问题

    1,若端口不是80 端口则匹配的时候必须加端口 if (req.http.host ~ "(?i)^var.test.aa:6081$") {set req.http.host = ...