一个简单易用的 Android 导航栏TitleBar
时间:2022-04-26
本文章向大家介绍一个简单易用的 Android 导航栏TitleBar,主要内容包括1、左边文字,左边返回图片,左边点击事件、2、中间文字、3、右边action按钮或者文字、4、下划分割线、5、一行代码适配沉浸式、6、一行代码设置TitleBar高度、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
一个简单易用的导航栏TitleBar,可以轻松实现IOS导航栏的各种效果。
一个简单易用的导航栏TitleBar,可以轻松实现IOS导航栏的各种效果整个代码全部集中在TitleBar.java中,所有控件都动态生成,动态布局。不需要引用任何资源文件,拷贝TitleBar.java到自己工程即可使用。
1、左边文字,左边返回图片,左边点击事件
左边可设置图片,文字单独显示,也可以设置图片文字同时显示
titleBar.setLeftImageResource(R.mipmap.back_green);
titleBar.setLeftText("返回");
titleBar.setLeftTextColor(Color.WHITE);
titleBar.setLeftClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
2、中间文字
中间文字根据左右控件始终居中显示,自动排版
titleBar.setTitle("文章详情");
titleBar.setTitleColor(Color.WHITE);
3、右边action按钮或者文字
通过addAction添加操作控件,通过removeAction删除控件。可以使用图片或者文字。
titleBar.setActionTextColor(Color.WHITE);
mCollectView = (ImageView) titleBar.addAction(new TitleBar.ImageAction(R.mipmap.collect) {
@Override
public void performAction(View view) {
Toast.makeText(MainActivity.this, "点击了收藏", Toast.LENGTH_SHORT).show();
mCollectView.setImageResource(R.mipmap.fabu);
}
});
titleBar.addAction(new TitleBar.TextAction("发布") {
@Override
public void performAction(View view) {
Toast.makeText(MainActivity.this, "点击了发布", Toast.LENGTH_SHORT).show();
}
});
4、下划分割线
titleBar.setDividerColor(Color.GRAY);
5、一行代码适配沉浸式
如果你的项目使用了沉浸式,布局时候加上这行代码,TitleBar会自动填充状态栏
titleBar.setDividerColor(Color.GRAY);
6、一行代码设置TitleBar高度
如果你的TitleBar没有固定高度,会默认设置48dip作为高度,你也可以自定义高度
titleBar.setHeight(48 * 2);
- Java中三种Set类型用法、性能大比拼
- Android基础总结(5)——数据存储,持久化技术
- 如何突破Windows环境限制打开“命令提示符”
- 【Spark研究】Spark之工作原理
- Java中泛型使用的必要性
- “一切都是消息”--MSF(消息服务框架)之【发布-订阅】模式
- Android基础总结(4)——广播接收器
- “一切都是消息”--MSF(消息服务框架)之【请求-响应】模式(点对点)
- “老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春
- 解决服务器SID引起虚拟机不能加入AD域用户,无法远程登录的问题
- 【Python环境】如何使用 Docker 快速配置数据科学开发环境?
- Java中UUID的2种创建方法——有代码实例
- 使用“消息服务框架”(MSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)
- Android基础总结(3)——UI界面布局
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 第四天:文本处理流程——分词
- 腾讯云 云开发 部署 Blazor网站
- 简单的 CAS 实现 SSO 单点登录
- 为什么 Java 中“1000==1000”为false,而”100==100“为true?
- 详解股票买卖算法的最优解(一)
- 详解股票买卖算法的最优解(二)
- Bertopology: Bert及其改进型总结
- Go 如何实现热重启
- Serverless ETL —— 蘑菇街实战落地
- Day35:数组中的逆序对
- Day36:两个链表的第一个公共结点
- 第5天: 文本处理流程——拼写纠错
- Spring 自定义类型转换器
- Spring BeanPostProcessor 的执行顺序
- Day37:数字在排序数组中出现的次数