当前位置: 首页 > news >正文

TabLayout使用以及自定义tab标签

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"><com.google.android.material.tabs.TabLayoutandroid:id="@+id/tab"android:layout_width="match_parent"android:layout_height="wrap_content"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:tabTextAppearance="@style/myTab"style="@style/myTabLayout"tools:ignore="SpeakableTextPresentCheck" /><androidx.viewpager2.widget.ViewPager2android:id="@+id/vp"android:layout_width="match_parent"android:layout_height="wrap_content"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/tab" /></androidx.constraintlayout.widget.ConstraintLayout>
package com.example.myapplicationimport android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.example.myapplication.databinding.TestVp2Binding
import com.google.android.material.tabs.TabLayoutMediatorclass VP2Demo : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val inflate = TestVp2Binding.inflate(layoutInflater)setContentView(inflate.root)val mutableListOf = mutableListOf<Fragment>()val fragment = Fragment(R.layout.test_a)val fragment2 = Fragment(R.layout.test_view)val fragment3 = Fragment(R.layout.test_net)val childAt = inflate.vp.getChildAt(0)(childAt as? RecyclerView)?.setOverScrollMode(View.OVER_SCROLL_NEVER)mutableListOf.add(fragment)mutableListOf.add(fragment2)mutableListOf.add(fragment3)inflate.vp.adapter = MyVpAdapter(mutableListOf, supportFragmentManager, lifecycle)val titles = mutableListOf<String>()titles.add("新闻")titles.add("新闻2")titles.add("新闻3")TabLayoutMediator(inflate.tab, inflate.vp) { p0, index ->run {p0.setText(titles[index])p0.setIcon(R.drawable.zc)if(index==1){val textView = TextView(baseContext)textView.text = "我是自定义的标签哈哈~~~"p0.setCustomView(textView)}}}.attach()}class MyVpAdapter(list: MutableList<Fragment>, fm: FragmentManager, lf: Lifecycle) :FragmentStateAdapter(fm, lf) {private var listS = emptyList<Fragment>()init {listS = list}override fun getItemCount(): Int {return listS.size}override fun createFragment(position: Int): Fragment {return listS[position]}}}
  <style name="myTab" parent="@android:style/TextAppearance.Widget.TabWidget"><item name="textAllCaps">false</item><item name="android:textSize">30sp</item></style><style name="myTabLayout" parent="Widget.Design.TabLayout"><item name="tabIndicatorColor">#00FF00</item><item name="tabSelectedTextColor">#FF0000</item><item name="tabTextColor">#0000FF</item><item name="tabRippleColor">@color/yellow</item></style>

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL和Redis的数据一致性
  • UE C++ FUdpSender和FUdpReveiver
  • 需要全面学习LangChain?您看这篇就够了
  • .net SqlSugarHelper
  • C# 判断电脑是否联网
  • 保研考研机试攻略:第二章——入门经典(1)
  • Android笔试面试题AI答之Kotlin(4)
  • 高级java每日一道面试题-2024年8月07日-网络篇-你对TCP的三次握手了解多少?
  • OOP经典设计模式
  • Docker 入门全攻略:安装、操作与常用命令指南
  • Java 实现括号匹配:栈的应用与优化
  • zabbix的主/动模式自定义监控项
  • LCM红外小目标检测
  • 【人工智能】Transformers之Pipeline(八):文生图/图生图(text-to-image/image-to-image)
  • C语言之“ 分支和循环 ” (2)
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • emacs初体验
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Java小白进阶笔记(3)-初级面向对象
  • Linux gpio口使用方法
  • Phpstorm怎样批量删除空行?
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 前端面试之闭包
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 学习HTTP相关知识笔记
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #70结构体案例1(导师,学生,成绩)
  • #Linux(Source Insight安装及工程建立)
  • #QT 笔记一
  • #单片机(TB6600驱动42步进电机)
  • (09)Hive——CTE 公共表达式
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (一)80c52学习之旅-起始篇
  • (转)jdk与jre的区别
  • (转)详解PHP处理密码的几种方式
  • .NET 8 跨平台高性能边缘采集网关
  • .Net 路由处理厉害了
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • /proc/stat文件详解(翻译)
  • /tmp目录下出现system-private文件夹解决方法
  • [.net]官方水晶报表的使用以演示下载
  • [20180224]expdp query 写法问题.txt
  • [240727] Qt Creator 14 发布 | AMD 推迟 Ryzen 9000芯片发布
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C]整形提升(转载)
  • [Everyday Mathematics]20150130