仿今日头条最强顶部导航指示器,支持6种模式

2023-10-27

项目中经常会用到类似今日头条中顶部的导航指示器,我也经常用一个类似的库PagerSlidingTabStrip,但是有时并不能小伙伴们的所有需求,所以我在这个类的基础上就所有能用到的情况做了一个简单的封装。大家知道做一个功能比较简单,但是封装好几种功能到一个类里面就需要处理的好多逻辑了,所以对于小编这种小白也是花了好久的业余时间才搞完的,希望大家能够多多支持,更希望我的绵薄之力能够帮助大家。源码和Demo已经上传到github了,欢迎大家多多fork和star。
github地址:https://github.com/shanyao0/TabPagerIndicatorDemo

好了废话不多说,直接上图来看下效果吧。

六种效果图

一:MODE_WEIGHT_NOEXPAND_SAME

几个标题均分宽度,不能扩展,底部导航线跟标题宽度一致

二:MODE_WEIGHT_NOEXPAND_NOSAME

几个标题均分宽度,不能扩展,底部导航线跟标题宽度不一致

三:MODE_NOWEIGHT_NOEXPAND_SAME

标题不均分宽度,不能扩展,底部导航线跟标题宽度一致

四:MODE_NOWEIGHT_NOEXPAND_NOSAME

标题不均分宽度,不能扩展,底部导航线跟标题宽度不一致

这里写图片描述

五:MODE_NOWEIGHT_EXPAND_SAME

标题不均分宽度,能扩展,底部导航线跟标题宽度一致

六:MODE_NOWEIGHT_EXPAND_NOSAME

标题不均分宽度,能扩展,底部导航线跟标题宽度不一致

使用方法

一般来说这个类是ViewPager+TabPagerIndicator+Fragment来使用的

1. 关联类库

首先,下载我上面的TabPagerIndicatorDemo,然后将里面的tabpagerindicator类库import Module到你的项目,并关联

2. xml布局
<?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:background="#fff"
    android:orientation="vertical">

    <shanyao.tabpagerindictor.TabPageIndicator
        android:id="@+id/indicator"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        />
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#fff" />
</LinearLayout>
3. 代码使用
    @Override
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仿今日头条最强顶部导航指示器,支持6种模式 的相关文章

随机推荐

  • 搭建属于自己的私有链,部署简单的智能合约

    ubuntu 17 10安装 sudo apt upgrade y sudo apt install software properties common sudo add apt repository y ppa ethereum eth
  • ARP欺骗的各种玩法

    ARP欺骗 定义 ARP欺骗 英语 ARP spoofing 又称ARP毒化 ARP poisoning 网络上多译为ARP病毒 或ARP攻击 是针对以太网地址解析协议 ARP 的一种攻击技术 通过欺骗局域网内访问者PC的网关MAC地址 使
  • mysql存储过程switch_MySQL存储过程详解

    1 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译 然后执行 而存储过程 Stored Procedure 是一组为了完成特定功能的SQL语句集 经编译后存储在数据库中 用户通过指定存储过程的名字并给定参数 如果该
  • SpringBoot统一功能处理

    目录 SpringMVC统一处理的三种方式 1 基于SpringMVC的配置类扩展 1 添加路径前缀 2 添加拦截器 2 统一的响应数据格式封装 3 统一异常处理 基于SpringAOP已经实现统一功能增强 但如果希望对Controller
  • Rocket 框架基础

    Rocket v0 5 DOC Rocket是Rust的一个web框架 它使编写快速 安全的web应用程序变得简单 而不会牺牲灵活性 可用性或类型安全性 类型安全 从请求到响应 Rocket确保您的类型有意义 样板免费 把时间花在编写真正重
  • QTday1

    1 设置一个用户界面 include widget h Widget Widget QWidget parent QWidget parent 窗口 this gt setFixedSize 550 650 锁定窗口大小 this gt s
  • 共空间模式 (CSP)python 实现

    代码参考自 https github com orvindemsy MI BCI CSP 做了整理与封装 更方便使用 输入数据格式为 x shape trial channal timepoint y shape trial from mi
  • c语言中全局变量的初始化

    c语言中局部变量可以用类型相符的任意表达式来初始化 而全局变量只能用常量表达式初始化 尤其对于全局变量来说 不能用一个数学函数或者其他的需要在运行时才能计算出结果的表达式进行初始化 因为程序开始运行时要用适当的值来初始化全局变量 所以初始值
  • PCL 计算点云法向量与表面曲率(C++详细过程版)

    法向量 一 概述 二 代码实现 三 结果展示 四 相关链接 一 概述 计算点云法向量和表面曲率是PCL里的经典算法之一 具体算法原理和实现代码见 PCL 计算点云法向量并显示 为充分了解算法实现的每一个细节和有待改进的地方 使用C 代码对算
  • winserver2019 解决【你的远程桌面许可证出现问题,你的会话将在60分钟后断开连接】

    问题描述 winserver 2019 rdp远程后提示 远程桌面许可证问题 你的远程桌面许可证出现问题 你的会话将在60分钟后断开连接 请与系统管理员联系以解决此问题 如下图 解决方法 主要参考了 解决远程桌面许可证问题 但是这里说的太简
  • centerOS连不上网解决办法

    1 检查路由 route n 如果你缺失第一个路由 是肯定无法ping通外网的 2 添加dns vim etc resolv conf nameserver 8 8 8 8 3 在 etc resolv conf文件添加路由 route a
  • ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

    草莓熊python 绘图 春节版 圣诞倒数雪花版 附源代码 本文目录 一 前言 二 草莓熊python绘图 圣诞倒数雪花版 春节版 效果图 三 源代码保存方法 四 代码命令解释 1 绘图基本代码语法解释 2 7段数码管详解 2 1 7段数码
  • 2000-2018年各省能源消费和碳排放数据数据、1997-2017年各省地级市县区碳排放数、各国二氧化碳排放量(人均公吨数)1960-2014年、二氧化碳排放量、各省市碳排放权额分配实施方案

    1 2000 2018年各省能源消费和碳排放数据数据 1 数据来源 中国能源统计年鉴 2 时间跨度 2000 2018年 3 区域范围 全国各省 4 指标说明 指标来源为中国能源统计年鉴 2018年碳排放和能源数据为插值法推算得到 2 19
  • c语言循环结构程序设计实验报告,c语言循环结构程序设计实验报告

    c语言循环结构程序设计实验报告 云南大学数学与统计学实验教学中心实验报告课程名称 程序设计和算法语言 学期 2012 2013 学年下学期 成绩 指导教师 学生姓名 学生学号实验名称 循环结构程序设计实验编号 四 实验日期 实验学时 3学院
  • 在Pycharm中使用HTMLTestRunner不能生成测试报告

    遇到一个问题 在做自动化测试时 使用的编辑工具是Pycharm 语言是python3 selenium3 代码运行没有问题 但是就是执行完毕后没有在对应目录生成测试报告 因为之前使用的是python2 7 selenium2 程序运行是没有
  • 13.网络爬虫—多进程详讲(实战演示)

    网络爬虫 多进程详讲 一 进程的概念 二 创建多进程 三 进程池 四 线程池 五 多进程和多线程的区别 六 实战演示 北京新发地线程池实战 前言 个人简介 以山河作礼 Python领域新星创作者 CSDN实力新星认证 第一篇文章 1 认识网
  • 2020-09-15

    win10截图 win shift s
  • C++类结构规范定义

    后期私有类肯定还会有很多 为了自己和读者方便阅读 在后面的设计中将严格按照制定格式来定义类的变量和函数 pragma once class CClassxxx public CClassBase DECLARE DYNAMIC CClass
  • Flink SQL中时态表

    前言 Flink 1 12正式发布后 带来了很多新的特性 本文重点学习和总结一下Flink 1 11和 Flink1 12中时态表的使用和自己的一个小总结 文章如有问题 请大家留言交流讨论 我会及时改正 本文主要将在Flink1 12中新的
  • 仿今日头条最强顶部导航指示器,支持6种模式

    项目中经常会用到类似今日头条中顶部的导航指示器 我也经常用一个类似的库PagerSlidingTabStrip 但是有时并不能小伙伴们的所有需求 所以我在这个类的基础上就所有能用到的情况做了一个简单的封装 大家知道做一个功能比较简单 但是封