Android控件——Tablayout使用浅析(一)

1. Tablelayout序言

在一个app中,Tabs 使不同视图和功能之间的切换变得简单。使用 tabs 将大量关联的数据或者选项划分成更易理解的分组,可以在不需要切换出当先上下文的情况下,有效的进行内容导航和内容组织。

Tablayout继承自HorizontalScrollView,用作页面切换指示器
这里给出一个相关Tablayout实现的效果图:
在这里插入图片描述
从效果图上可以看出,可以操作的属性有:设置tab属性,指示线的设置,tab的图标设置,超出屏幕滚动tab

2. 简单使用

Tablayout常用属性如下:

  • tabGravity fill,填满TabLayout;center,居中显示
  • tabMode fixed, 固定标签;scrollable,可滚动标签,个数较少的时候可 以使用fixed,如果标签超出了屏幕范围,设置为scrollable比较好
  • tabMaxWidth Tab的最大宽度
  • tabIndicatorColor 底部滑动的线条的颜色,默认是colorAccent
  • tabIndicatorHeight 底部滑动线条的高度
  • tabPadding* 标签页的padding
  • tabBackground 标签页的背景
  • tabTextAppearance 文本设置
  • tabSelectedTextColor 选中字体颜色

Tablayout常见方法如下:

  • 构造方法 不显示滚动条,创建标签条就是下面滚来滚去的那个东东,获取自定义属性值
  • addTab 手动添加Tab页
  • addOnTabSelectedListener/removeOnTabSelectedListenerclearOnTabSelectedListeners 添加/移除/清空Tab选择事件监听器
  • newTab 创建Tab页
  • getTabAt 通过index获取Tab
  • removeTab 通过tab实例移除tab
  • removeTabAt 移除特定位置的tab
  • removeAllTabs 清空tabs
  • setTabTextColors 设置tab的正常显示颜色和选中后颜色
  • setupWithViewPager 通过ViewPager初始化TabLayout
  • shouldDelayChildPressedState 判断是否需要delay视图的press状态,一般无法滚动的视图直接返回false,可以滚动的视图看情况返回true或者false
  • addView 添加TabItem,如果参数类型不是TabItem会报异常
  • generateLayoutParams 默认生成属性值,防止TabItem没有定义android:layout_*而报异常

TabItem属性

  • text:标签文字
  • icon:图标
  • layout:自定义布局

2.1 默认使用样式

  • activity_main.xml布局
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.tablayoutusecase.defaultuse.MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:background="@color/colorPrimaryDark">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="一般用法"
            android:textColor="#fff"
            android:textSize="16sp"/>

    </RelativeLayout>

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

</LinearLayout>
  • MainActivity修改:设置相关属性
public class MainActivity extends AppCompatActivity {
   
    private TabLayout tabLayout;
    private String[] titles = new String[]{
   "最新","热门","我的"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        init();
    }

    private void init() {
   

        tabLayout = (TabLayout) findViewById(R.id.tablayout);
        
		// 创建Tab页
        for(int i=
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值