Android Material Design控件之TabLayout

Android Material 常用组件详解(八)—— TabLayout 使用详解 一、前言 在开发中,我们最常使用的是TabLayout+ViewPager+Fragment实现多个界面滑动的形式。 二、实现方式 2.1 基础用法 <com.google.android.material.tabs.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <com.google.android.mat 阅读详情

Android Material Design Android官方控件学习

TabLayout

  • 标签栏
  • extends HorizontalScrollView 水平滚动布局
  • 需要结合TabItem一起使用
  • 不再需要使用第三方库如PagerSlidingTabStrip,或者TabHost,
  • TabLayout简单地实现标签栏

导入design库

'com.android.support:design:26.1.0'

xml

TabLayout

  • 这里直接写入三个TabItem
  • app:tabIndicatorColor:指示器颜色
  • app:tabIndicatorHeight:指示器高度
  • app:tabSelectedTextColor: 选中TabItem字体颜色
  • app:tabTextColor:未选中TabItem字体颜色
    TabItem
  • android:icon="@drawable/ic_action_tab"//设置图片
  • android:text=“第一项”//设置文字
<android.support.design.widget.TabLayout
			android:id="@+id/tabLayout"
			android:background="#3558B3"
			app:tabIndicatorColor="#cdcdcd"
			app:tabIndicatorHeight="4dp"
			app:tabSelectedTextColor="#fff"
			app:tabTextColor="#cdcdcd"
			app:tabTextAppearance="@style/TextAppearance.AppCompat.Small"
			android:layout_width="match_parent"
			android:layout_height="wrap_content">

			<android.support.design.widget.TabItem
				android:icon="@drawable/ic_action_tab"
				android:text="第一项"
				android:tag="tag第三项"
				android:layout_width="wrap_content"
				android:layout_height="wrap_content"/>

			<android.support.design.widget.TabItem
				android:icon="@drawable/ic_action_tab"
				android:text="第二项"
				android:tag="tag第三项"
				android:layout_width="wrap_content"
				android:layout_height="wrap_content"/>
			<android.support.design.widget.TabItem
				android:icon="@drawable/ic_action_tab"
				android:tag="tag第三项"
				android:text="第三项"
				android:layout_width="wrap_content"
				android:layout_height="wrap_content"/>
		</android.support.design.widget.TabLayout>

	</LinearLayout>

OnTabSelectedListener TabLayout监听事件

切换Tab
  • 先调用onTabUnselected(TabLayout.Tab tab):切换前选中tab
  • 再调用onTabSelected(TabLayout.Tab tab):切换后选中tab
重新点击选中Tab
  • onTabReselected(TabLayout.Tab tab):选中Tab
        TabLayout mTabLayout =   findViewById(R.id.tabLayout);
        mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                tab.getText();
                tab.getPosition();
                tab.getTag();
                Toast.makeText(TabLayoutActivity.this,"onTabSelected"+tab.getText()+tab.getPosition()+tab.getTag(), Toast.LENGTH_SHORT).show();
                Log.e("onTabSelected",""+tab.getText()+tab.getPosition()+tab.getTag());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

                Log.e("onTabUnselected",""+tab.getText()+tab.getPosition()+tab.getTag());
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {
                Log.e("onTabReselected",""+tab.getText()+tab.getPosition()+tab.getTag());
            }
        });

MaterialDesignWidget.TabLayoutActivity 设置nestedScrollView的topMargin,

  • 实现Toolbar、TabLayout、NestedScrollView在CoordinatorLayout中的合理布局
        //测量ll_appbar,设置nestedScrollView的topMargin
        LinearLayout mLLAppbar =   findViewById(R.id.ll_appbar);
        int width2 = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
        int height2 = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
        mLLAppbar.measure(width2,height2);
        int  height=mLLAppbar.getMeasuredHeight();
        NestedScrollView mNestedScrollView =   findViewById(R.id.nestedScrollView);
        CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) mNestedScrollView.getLayoutParams();
        layoutParams.topMargin=height;
        mNestedScrollView.setLayoutParams(layoutParams);
 

github 源码地址:https://github.com/LinweiJ/MaterialDesignWidget

AndroidX TabLayout使用、扩展及解析All In One 这里有两种方式添加TabItem的自定义布局,其一种方式是在TabItem的xml中定义android:text=“娱乐” />custom_indicator1.xml文件内容,值得注意的是这里的TextView的id必须是“@android:id/text1”,ImageView的id必须是“@android:id/icon”,原因来自于与TabLayout的源码中TabView的update方法。 阅读详情

相关推荐

com.google.android.material.tabs.TabLayout 选择tab 加粗字体加大

引用: https://blog.csdn.net/qq_34906385/article/details/93524163 app:tabIndicatorColor :指示线的颜色 app:tabIndicatorHeight : 指示线的高度 app:tabIndicatorFullWidth=false 指示线是否铺满宽度 app:tabSelectedTextColor : tab选中时的字体颜色 app:tabTextColor=@color/colorPrimary :未选中字体颜色 app:tabBackground=color : 整个tablayout颜色

【Android】Material TabLayout使用详解

这样padding就无效果了,所以设置padding时,要给定一个最小宽度。TabItem可以设置text,icon,layout三个属性。其它属性都通过TabLayout来统一设置。未指定宽度时,TabItem会使用默认宽度。

天天向上 Up Up Up (*^▽^*) 1064

uniapp 记录运动轨迹 开发_智能手环穿戴设备APP开发解决方案

智能手环是一种穿戴式智能设备,是目前备受关注的科技产品。目前智能手环具有的功能有记录日常生活中的运动数据、移动轨迹,定位等,有些还可以进行睡眠质量的检测,并将这些数据传送至移动端如手机、平板等,可对数据进行分析,指导健康生活的作用。而智能手环开发方案就是将这些功能实现,将算法烧录到主控板上。智能手环都有哪些功能  1、记录运动数据  对于喜欢健身的用户来说,智能手环记录的运动数据功能...

weixin_39678493的博客 1764

MaterialDesign之对TabLayout的探索

一、简述 TabLayout是Android Support Design库的新控件,可以用来实现开源框架ViewPageIndicator的效果(在MaterialDesign没出来之前基本都用这玩意儿吧~),TabLayout相比它使用上更加简单,且不一定要跟ViewPager一起使用,毕竟谷歌做出来的,稳定性更是不用说啦,此外,本文还会仔细列出本人对该控件的探索过程,从而实现一些控件本身没法...

weixin_33895016的博客 155

SiC MOSFET驱动设计实战:从特性解析到电路优化

本文深入解析SiC MOSFET的核心特性及其驱动电路设计要点,涵盖高温稳定性、快速开关能力等关键特性,并提供驱动电压配置、电流能力计算、布局优化等实用方案。特别针对第三代电力电子半导体SiC MOSFET的驱动要求,分享STGAP1AS等典型驱动方案的应用技巧,助力工程师解决高频应用中的EMI和热管理挑战。

weixin_29230865的博客 365

超越图灵机——论人工智能实现的可能性(一)

超越图灵机——论人工智能实现的可能性(一)我认为人工智能是可以实现到逻辑思维这一步的,因为逻辑思维可以完全用字符串来表示,图灵机可以把任意单元置成任意值,在这一点上是完备的,这就足以描述逻辑思维了,所以用图灵机完全可以实现到逻辑思维。当然图灵机会受到哥德尔不完备性的制约,但是逻辑系统也会受到同样的制约,所以我认为完全可以用图灵机实现逻辑思维。那么逻辑思维的本质机理与图灵机是什么关系?逻辑思

太极语言 1万+

TabLayout addOnTabSelectedListener遇到的坑

在给TabLayout.addOnTabSelectedListener的时候,因为业务逻辑的关系(FUCK!),在select的时候有数据源的传参,没错,就是那个data @Override public void onTabSelected(TabLayout.Tab tab) { LogUtil.e(Constant.LOG_TAG, "onTabS...

Gao_yuyu的博客 1万+

HDLbits练习11 - Counter 1-12 ( Exam/ece241 2014 q7a )

(如这题用于当复位信号为高或者计数器递增至12时,该信号置1使计数器的输入信号 ’ d ’ 变为 ’ 4’b0001 ’ ,再加载到 ’ Q ’ 中。当 ’ load ’ 信号为高时,在时钟的上升沿,计数器会将 ’ d ’ 输入的值加载到 ’ Q ’ (计数器的输出)中,而不是递增当前值。用途:在时钟上升沿触发的情况下,如果 ’ enable ’ 信号为高,计数器的值会递增,如果 ’ load ’ 信号为高,计数器将加载 ’ d ’ 信号的值。作用: ’ Q ’ 是计数器的当前值,也是模块的主要输出。

weixin_62830176的博客 472

Android Material Design 控件之TabLayout 学习

往常我们要实现tab页卡+viewpager联动切换的布局都需要自己去自定义布局,然后通过接口实现联动,而且使用起来比较麻烦。现在Android官方已经把这种控件写出来了,使用起来也方便,本文就以期学习一下TabLayout的使用。 首先我们需要在项目的build.gradle里面添加使用扩展包: compile 'com.android.support:appcompat-v7:23.0

熊大巍搬砖记 3605

Visual SLAM算法笔记

最近在学习SLAM算法,这里作为阅读笔记记录和总结一下。对经典的单目SLAM/VO算法做了摘要和总结,比如Nister VO、MonoSLAM、PTAM、ORB-SLAM、LSD-SLAM、SVO、DSO等,对几个单目和IMU的融合算法也做了简单总结,比如MSCKF、OKVIS、IMU-Preintegration等。

MulinB的技术博客 3万+

华为OD机试双机位C卷-统计差异值大于相似值二元组个数(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【统计差异值大于相似值二元组个数】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 统计差异值大于相似值二元组个数

qq_45776114的博客 782

Android Material Design控件学习(一)——TabLayout的用法

前言 Google官方在14年Google I/O上推出了全新的设计语言——Material Design。一并推出了一系列实现Material Design效果的控件库——Android Design Support Library。其中,有TabLayout, NavigationView,Floating labels for editing text,Floating Actio...

didingyun4257的博客 322

Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(十九):微服务实战——Boot 4 + Spring Cloud 2026.x,构建高并发电商分布式系统

Component@Slf4j@Autowired// 白名单路径@Override// 白名单放行// 提取Token// 传递用户信息到下游服务.mutate().build();@Override// 最高优先级if (bearer!@Component技术点Boot 3 时代Boot 4 时代提升线程模型平台线程池(200线程上限)虚拟线程(百万级并发)50x+服务通信。

qq_17204557的博客 185

Android进阶——Material Design新控件之初识TabLayout(一)

TabLayout,滑动指示选项卡,继承自HorizontalScrollView(注:与TableLayout毫无关系),提供了一个水平的可滚动布局来展示Tabs**。所以有了它我们就不必在去自己定义实现类似ActionBar的Tab栏了(TabLayout provides a horizontal layout to display tabs)与以前早期TabHost不同TabLayout兼容性更强。

最美不过,心中有梦,身旁有你! 7241

stata 工具变量法【计量经济系列(七)】

stata 工具变量法【计量经济系列(七)】 1. 内生性 2. 工具变量3. 2SLS (二阶段最小二乘法) 4. 弱工具变量5. 工具变量外生性的过度识别检验 6. 豪斯曼检验6.1 传统豪斯曼 6.2 杜宾-吴-豪斯曼检验(DWH)

侯小啾技术博客 2万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 一个基于DialogFragment的图片浏览器
下一篇: Android Material Design控件之AppBarLayout
LinWeiJ
博客等级 码龄10年 29粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值