TabLayout学习笔记(简介及进阶)

本文介绍了TabLayout的基本概念和使用方法,它作为Android中的容器控件,通常与ViewPager配合,用于实现水平标签效果。文章详细讲解了TabLayout的属性、依赖、布局代码以及与ViewPager的绑定。此外,还探讨了TabLayout的两种应用场景:顶部标签页和底部菜单栏,通过实例展示了如何自定义Tab视图。最后,深入解析了TabLayout的进阶用法,包括添加Tab、设置滚动位置等,帮助开发者更好地理解和运用TabLayout。
摘要由CSDN通过智能技术生成

前言:小白入门学习博客,大佬可以直接跳过此博客(大佬轻喷哈)
TabLayout简介:
   TabLayout是属于容器控件, 提供水平显示Tab的效果. 常常和ViewPager配合使用。Tablayout继承自HorizontalScrollView,用作页面切换指示器,因使用简便功能强大而广泛使用在App中。
TabLayout属性简介

android.support.design:tabBackground — 设置的背景。 
android.support.design:tabContentStart — 相对起始位置tab的Y轴偏移量。 
android.support.design:tabGravity — tab的布局方式,两个值GRAVITY_CENTER (内容中心显示) 和 GRAVITY_FILL (内容尽可能充满TabLayout)。 
android.support.design:tabIndicatorColor — 设置tab指示器(tab的下划线)的颜色。 
android.support.design:tabIndicatorHeight — 设置tab指示器(tab的下划线)的高度。 
android.support.design:tabMaxWidth — 设置tab选项卡的最大宽度。 
android.support.design:tabMinWidth — 设置tab选项卡的最小宽度。 
android.support.design:tabMode — 设置布局中tab选项卡的行为模式,两个常量MODE_FIXED (固定的tab)和 MODE_SCROLLABLE(滑动的tab)。 
android.support.design:tabPadding — 设置tab的内边距(上下左右)。 
android.support.design:tabPaddingBottom — 设置tab的底部内边距。 
android.support.design:tabPaddingEnd — 设置tab的右侧内边距。 
android.support.design:tabPaddingStart — 设置tab的左侧内边距。 
android.support.design:tabPaddingTop — 设置tab的上方内边距。 
android.support.design:tabSelectedTextColor — 设置tab被选中时的文本颜色。 
android.support.design:tabTextColor — 设置tab默认的文本颜色。 
android.support.design:tabTextAppearance — 设置tab的TextAppearance样式的引用,可以引用另一个资

常用属性:

app:tabIndicatorColor :指示线的颜色
app:tabIndicatorHeight :指示线的高度
app:tabSelectedTextColor : tab选中时的字体颜色
app:tabMode="scrollable" : 默认是fixed,固定的;scrollable:可滚动的

添加依赖:
   这是Android Design 包下的类, 该包是Android5.0 引入的UI包

compile 'com.android.support:design:25.2.0'

布局

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
 
</android.support.design.widget.TabLayout>

代码:

public classMainActivityextendsAppCompatActivity{
   
 
    @BindView(R.id.tab_layout)
    TabLayout mTabLayout;
 
    @Override
    protectedvoidonCreate(Bundle savedInstanceState){
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
 
        mTabLayout.addTab(mTabLayout.newTab().setText("首页"));
        mTabLayout.addTab(mTabLayout.newTab().setText("分类"));
        mTabLayout.addTab(mTabLayout.newTab().setText("设置"));
    }

效果图:

使用滚动的标签指示器和滑动的内容页面,是手机应用经常出现的一种设计风格,常见的比较出名的应用有:微信(首页)、网易新闻、今日头条和知乎等。Google在Support Design包中发布了一些列新的控件,其中就包括TabLayout。配合着ViewPager和Fragment的使用,TabLayout可以帮助开发者们分分钟打造一个滑动标签页,非常方便。本文将介绍TabLayout的两种常见使用场景:顶部标签页(如知乎),底部菜单栏(如微信)。先看一下最终能够实现的效果:

顶部标签页:

TabLayout的使用需要借助Android Design包,所以我们需要在 build.gradle中引入design包

compile 'com.android.support:design:23.3.0'

在布局文件 activity_tab_layout.xml 中加入TabLayout和ViewPager控件:

<?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">
 
    <include
        layout="@layout/include_toolbar"/>
 
    <android.support.design.widget.TabLayout
        android:id="@+id/tl_tab"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_48"
        android:background="@color/blue">
 
    </android.support.design.widget.TabLayout>
 
    <android.support.v4.view.ViewPager
        android:id="@+id/vp_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
    </android.support.v4.view.ViewPager>
 
</LinearLayout>

然后我们看一下 TabLayoutActivity 中的代码:

package com.yifeng.mdstudysamples;
 
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
 
import java.util.ArrayList;
import java.util.List;
 
public class TabLayoutActivity extends BaseActivity {
   
 
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值