使用support.design.widget.TabLayout和ViewPager组合成滑动标签组件

Android底部和标签导航栏—TabLayout+Fragment 介绍Google官方在2014年Google I/O上推出了全新的设计语言——Material Design。一并推出了一系列实现Material Design效果的控件库——Android Design Support Library。其中,有TabLayout, NavigationView,Floating labels for editing text,Floating Action But 阅读详情

使用support.design.widget.TabLayout和ViewPager组合成滑动标签组件

  1. 引入

    compile 'com.android.support:design:23.1.1'
    
  2. 布局文件

    <android.support.design.widget.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabGravity="center"
            app:tabIndicatorColor="#FFFF0000"
            app:tabMode="scrollable"
            app:tabSelectedTextColor="#FF0000FF"
            app:tabTextColor="#FF987898">
    </android.support.design.widget.TabLayout>
    
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
  3. 找到该控件

     private void initView() {
            TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
            ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        } 
    
  4. 准备要填充的Fragment和Titles

    private void initData() {
    
        for (int i = 0; i < 7; i++) {
            mTitle[i] = "title" + i;
        }
    
        MyFragment f1 = new MyFragment(getApplicationContext(), "A");
        MyFragment f2 = new MyFragment(getApplicationContext(), "B");
        MyFragment f3 = new MyFragment(getApplicationContext(), "C");
        MyFragment f4 = new MyFragment(getApplicationContext(), "D");
        MyFragment f5 = new MyFragment(getApplicationContext(), "E");
        MyFragment f6 = new MyFragment(getApplicationContext(), "F");
        MyFragment f7 = new MyFragment(getApplicationContext(), "G");
        list.add(f1);
        list.add(f2);
        list.add(f3);
        list.add(f4);
        list.add(f5);
        list.add(f6);
        list.add(f7);
     }
    

    补充: MyFragment继承自Fragment(一定要使用V4包)

    @SuppressLint("ValidFragment")//提示保措时,添加这句话即可
    public class MyFragment extends Fragment {
        private Context context;
        private  String str;
    
        public MyFragment(Context context,String str) {
            this.context = context;
            this.str=str;
        }
    
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    
            TextView tv = new TextView(context);
            tv.setText(str);
            tv.setTextSize(90);
            return tv;
        }
    }
    
  5. new FragmentPagerAdapter

    • 重写默认的两个方法,绑定Fragment个数和Fragment(注意这里的Fragment使用V4包的)

    • 手动引入重写getPageTitle方法,绑定tabLayout的标题组

       FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
                  @Override
                  public int getCount() {
                      return list.size();
                  }
      
                  @Override
                  public Fragment getItem(int position) {
                      return list.get(position);
                  }
      
                  @Override
                  public CharSequence getPageTitle(int position) {
                      return mTitle[position];
                  }
              };
      
  6. 后续设置:

    • ★从adapte的getPageTitle方法中得到tabLayout的标题,
    • 给viewPager设置适配器
    • 互相绑定tablayout和viewpager,使其联动。

      tabLayout.setTabsFromPagerAdapter(adapter);//从adapte的getPageTitle方法中得到tabLayout的标题
      
      viewPager.setAdapter(adapter);//略
      
      /*
      (互相绑定tablayout和viewpager)这个方法是addOnPageChangeListener和setOnTabSelectedListener的封装。
      ★但是需要注意一下,setupWithViePager必须在ViewPager.setAdapter()之后调用!
      */
      
      tabLayout.setupWithViewPager(viewPager);
      
Android控件-TabLayout使用介绍 TabLayout简述简单示例属性介绍tabIndicatorFullWidthtabRippleColortabTextAppearancetabModetabIndicatorColortabIndicatorHeighttabIndicatorGravity 简述 TabLayout是Android support中的一个控件android.support.design.widget.Tab... 阅读详情

相关推荐

MaterialDesign学习篇(四),如何使用TabLayout

什么是TabLayout上图中,我们可以看到,该页面分成三个页签,每个页签对应不同的内容,如果让我们来实现布局的话,我们会很容易地想到布局为一个页签指示器+ViewPager,以前,相信各位大多使用的是GitHub上的开源框架PagerSlidingTabTrip来实现指示器的效果,而如今,Android中也有自带这种指示器的控件TabLayout,TabLayout存在于Android Desig

Chay_Chan的博客 1652

android.support.design.widget.TabLayout的使用

现在比较流行viewpager和fragment相结合一起使用,以前我们都是使用viewpager+fragment+第三方开源的PagerSlidingTabStrip来一起使用,来达到如下的效果:            在android 5.0之后,google把一些控件进行了集成,这里面就有一个新的控件TabLayout,它就可以完成上面的功能了。          首先sdk的版

编程人生 773

Vivado2022.2下载安装

链接:https://pan.baidu.com/s/1lyfE2d-VmaWC-_aR8ratCQ提取码:mt09。

weixin_61081689的博客 2万+

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

【Android开发核心知识点笔记】【Android思维脑图(技能树)】【Android核心高级技术PDF文档,BAT大厂面试真题解析】【Android高级架构视频学习资源】《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!图片转存中…(img-LYYSqUd4-1712299588462)][外链图片转存中…(img-OfUbAlhi-1712299588462)][外链图片转存中…(img-jIZ6wPLK-1712299588463)]

2301_79985012的博客 783

浙政钉(专有钉钉)门户免登(超详细)

钉钉家族 介绍浙政钉门户免登之前,首先搞清楚几个软件的关系,软件分别是:钉钉,专有钉钉,浙政钉 钉钉 是阿里巴巴集团专为中小企业打造的沟通和协同的多端平台。 专有钉钉 原名 政务钉钉,有更开放的设计能力、集成能力、更结构化协同产品、更定制化开发平台。支持专有化部署,数据落本地,更安全、客户可对该产品持牌运营、结构化编排,协助构建本地应用中心、提供移动应用全面安全保障体系。 浙政钉 为规范浙政钉整体架构体系,按照统分结合原则,由省政府办公厅统一设计整体工作界面和系统框架,统筹指导全省统建应用建设,各单

一缕南风的博客 2万+

死磕GMSSL通信-java/Netty系列(二)

Netty-tcnative再linux编译比较好编译,但是再window编译,我尝试了各种办法,总是编译失败,所以我采用半自动的方式进行编译,Netty-tcnative会生成临时文件,直接用vs打开,设置openssl的头文件和静态库路径,然后生成静态库,静态库改个名字放到jar包里边,其实自动编译也是这个原理哈哈O(∩_∩)O。直接传输五个证书的路径吗,之前有的是说要转成x509之类的,转来转去的有点麻烦,这个是直接传输证书路径,由底层gmssl去解析,格式必须是pem格式。然而,若项目已依赖于。

qq_36577699的博客 3024

Android Support Design Library之TabLayout

对于TabLayout独有的属性比较多,我也是查看了文档才一一弄清楚是怎么个情况,我这里主要做一个总结,和实现其功能,给大家使用时候一个参考,免得网上百度不到众多属性是什么意思,以及要实现某个功能需要哪些属性。

李元静 1万+

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 101

android.support.design.widget.TabLayout 使用

最近入职新公司,看到项目Tab标签用的是  Android Design Support Library 中的TabLayout 以前也没用过~趁机学习一波。 先来看看效果: 首先sdk的版本必须是22,要想使用这个控件,你必须下载或更新sdk的版本,你要更新的22也就是5.1的版本,才会有这个控件的出现。 一.对应的项目gradle下引入 compile 'com.andro

YRB的博客 4759

勇攀数字高峰

摘要:该题目要求在数字地形图中寻找从最低点到最高点的所有严格递增登山路径。采用DFS深度优先搜索结合回溯算法,通过标记已访问位置并检查高度差限制(0<diff≤maxDiff)来遍历所有可能路径。算法首先确定起点(最低点)和终点(最高点),然后进行DFS搜索,每步移动需满足四个方向的合法移动且高度严格递增。最终输出符合条件的路径总数。提供了C++、Java和Python三种实现方案。

面试高手的博客 621

Unlocking Decoding-time Controllability: Gradient-FreeMulti-Objective Alignment with Contrastive Pr

将基于庞大网络语料库训练的大型语言模型(LLMs)(OpenAI,2023;Touvron 等,2023;Google,2023)与人类偏好对齐,是减少产生不安全(Wei 等,2023)、幻觉(Zhang 等,2023b)和有偏见(Gallegos 等,2023)内容的重要一步。随着偏好学习技术(如 PPO(Schulman 等,2017)、DPO(Rafailov 等,2023)及其他变体(Azar 等,2023;Ethayarajh 等,2024;

qq_52053775的博客 1168

Design库-TabLayout属性详解

序 上图是简书Android端的主页Tab,在其他的App中Tab也是很常见的,它的实现方式也有很多:TabHost,自定义控件(第三方库),RadioGroup等等。这里主要介绍Android Design库中的TabLayout的使用。 1.什么是TabLayout 在源码中给出了TabLayout的定义: TabLayout provides a horizontal lay

小母鸡的博客 563

Tessent ATPG Flow 流程 (代码和注释)

**摘要:Tessent ATPG流程分为五个阶段:1) 环境初始化(加载设计文件、库和扫描链配置);2) DRC规则检查(验证设计可测试性并修复违例);3) ATPG向量生成(设置故障模型并运行引擎优化覆盖率);4) 向量验证与后处理(仿真验证并生成ATE格式文件);5) 进阶操作(多电压域和存储器测试)。流程输出包括测试向量、覆盖率报告和验证日志,支持stuck-at和transition故障模型,使用Tcl脚本控制。关键步骤包含扫描链配置、EDT压缩和覆盖率优化。

QQ_778132974的博客 929

Android Support Design库之TabLayout

TabLayout作用:用于显示可切换的标签效果替代PagerTabStrip的效果,且比PagerTabStrip要好看,TabLayout的效果要优良与Tab导航模式。(其实就是我们用的最多的导航栏)1.需要引入degisn库的支持compile 'com.android.support:design:23.2.0'2.布局引入,这里使用了两个上面的自定义了Tab<?xml version="1

上辈子作恶多端,这辈子写前端。 2334

【从0到1实战】C# WinForm开发工业级PLC监控系统(完整串口+Modbus RTU/TCP+数据库存储+源码+避坑指南)

做C#工控上位机开发的工程师,尤其是刚入行的新人,最核心的刚需就是开发一套完整的PLC监控系统。这也是工控领域最基础、最核心、应用最广的项目类型——小到单台PLC的设备测控,大到整线的产线监控,本质都是「上位机与PLC通讯,实现数据采集、参数下发、状态监控、数据存储」。碎片化的知识点学了很多,串口会用了、Modbus协议看了、数据库也懂点,但是始终无法把这些知识点串联起来,做出一套能落地的工业级PLC监控系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1559

计算机控制技术及应用

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

TabLayout学习笔记(简介及进阶)(1),Android攒了一个月的面试题及解答

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。后面我就自己整理了一套资料,还别说,真香!资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新。

m0_60667406的博客 969

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android Design Support Library兼容库的使用(八个新控件)

兼容5.0以下的系统;主要用于学习新的控件,基本使用方法 使用Design Support Library的条件是什么? 符合MD设计的菜单控件 具有过渡动画效果的布局layout material Design几个特点:用户体验方面 1)扁平化、简洁 2)水波反馈(点击按钮出现水波效果) 3)良好体验的过渡动画 4)材料空间位置的直观变化(Z轴) 使用条件: com

陈如水的专栏 6014

使用TabLayout实现仿今日头条的导航页效果

在之前做项目的时候,想要去实现类似今日头条那种导航页效果,大家可能会去githug上找一些开源框架,比如ViewPagerIndicator,没错,在我刚不如安卓开发这一行业的时候,就是使用这个框架,不过在Android5.0棒棒糖之后,谷歌官方api中新增了自己的一个叫做TabLayout的控件以实现类似效果。刚好最近做项目中使用到过,便趁着空闲时间整理下,方便自己以后用到就可以直接拿来使用了,

znouy的博客 2745

2024年Android最新TabLayout学习笔记(简介及进阶),2024年最新面试掌握的技巧

使用滚动的标签指示器和滑动的内容页面,是手机应用经常出现的一种设计风格,常见的比较出名的应用有:微信(首页)、网易新闻、今日头条和知乎等。android.support.design:tabMode — 设置布局中tab选项卡的行为模式,两个常量MODE_FIXED (固定的tab)和 MODE_SCROLLABLE(滑动的tab)。android.support.design:tabIndicatorColor — 设置tab指示器(tab的下划线)的颜色。scrollable:可滚动的。

2401_84545291的博客 501

Carson带你学Android:底部/顶部Tab导航栏快速实现-TabLayout+ViewPager+Fragment

前言Android开发中使用顶部 & 底部Tab导航栏的频次非常高,主要的实现手段有以下: TabWidget 隐藏TabWidget,使用RadioGroup和RadioButton FragmentTabHost 5.0以后的TabLayout 最近推出的 Bottom navigation 在上一篇我介绍了如何使用(Fragment+FragmentTabHost++ViewPager) 实

Carson带你学Android 2万+

TabLayout用法,android顶部导航栏,android底部导航栏

TabLayout是android.support.design里的一个控件,使用它可以很方便的做出顶部导航和底部导航。类似于这样的,能设置选中时字体的颜色和选中时的图片。 首先我们引入compile 'com.android.support:design:23.1.1' 它的用法是: 第一种比较简单,就是文本和一个指示器。 布局文件是<LinearLayout xmlns:a

tianyaleixiaowu的专栏 2万+

Android TabLayout控件

在配置文件中指定TabItem

假装你是大灰狼的专栏 5986
上一篇: Fragment嵌套ViewPager+Fragment使用FragmentStatePagerAdapter报错,哪位大神帮我解决这个问题
下一篇: 详细解读LruCache类
Android_Study_OK
博客等级 码龄11年 91粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值