1. 定义布局文件,在layout下新建title_bar_view.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="48dp"android:background="@drawable/bg_top_bar" ><ImageViewandroid:id="@+id/bar_back"android:layout_width="48dp"android:layout_height="48dp"android:scaleType="center"android:src="@drawable/btn_back_selector" /><TextViewandroid:id="@+id/bar_title"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginLeft="48dp"android:layout_marginRight="48dp"android:gravity="center"android:text="Title"android:textColor="#FFFFFFFF"android:textSize="24sp"android:textStyle="normal" /><TextViewandroid:id="@+id/bar_action"android:layout_width="48dp"android:layout_height="48dp"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:gravity="center"android:text="action"android:textColor="#FFFFFFFF"android:textSize="18sp"android:textStyle="normal"android:visibility="gone" /></RelativeLayout>

相关资源,在drawable下新建btn_back_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/action_button_back_pressed" android:state_pressed="true"/><item android:drawable="@drawable/action_button_back_normal"/>
</selector>

         

2. 自定义View继承自RelativeLayout

public class TitleBar extends RelativeLayout{private ImageView ivBack;private TextView tvTitle;private TextView tvAction;public TitleBar(Context context) {this(context,null);}public TitleBar(Context context, AttributeSet attrs) {super(context, attrs);View view = View.inflate(context, R.layout.title_bar_view, this);ivBack = (ImageView) view.findViewById(R.id.bar_back);tvTitle = (TextView) view.findViewById(R.id.bar_title);tvAction = (TextView) view.findViewById(R.id.bar_action);}public void setBackVisibility(boolean show) {ivBack.setVisibility(show ? View.VISIBLE : View.INVISIBLE);}public void setTitle(String title) {tvTitle.setText(title);}public ImageView getIvBack() {return ivBack;}public void setIvBack(ImageView ivBack) {this.ivBack = ivBack;}public TextView getTvTitle() {return tvTitle;}public void setTvTitle(TextView tvTitle) {this.tvTitle = tvTitle;}public TextView getTvAction() {return tvAction;}public void setTvAction(TextView tvAction) {this.tvAction = tvAction;}
}

转载于:https://www.cnblogs.com/cbooy/p/4784364.html

项目中通用的顶部标题和返回的TitleBar相关推荐

  1. vue项目中阻止浏览器返回上一页

    vue项目中在某个页面阻止浏览器返回上一页,适用移动端.PC端. 使用场景例如: 首页 与 A页面     来回跳转,那样点击浏览器返回时也会来回跳转,本想当页面在首页的时候就不再返回了,所以这个时候 ...

  2. 项目中引用Iconfont(阿里巴巴矢量图标)的方式

    Iconfont的官网:https://www.iconfont.cn/ 首先没有账号的需要先注册账号,可以用微博扫码或者GitHub账户登录. 登录成功后搜索框搜索到你需要的图标 悬停在搜索结果中的 ...

  3. 数加平台在数据挖掘项目中的实践

    目录 背景 数据源 数据处理 模型训练及预测 数据可视化 总结 1. 背景 返回目录 随着越来越多的公司开始重视数据的积累和产品的敏捷开发,数据量的不断增加和开发周期的不断缩短,就形成了一对明显的矛盾 ...

  4. 数加平台在数据挖掘项目中的实践 1

    目录 背景 数据源 数据处理 模型训练及预测 数据可视化 总结 1. 背景 返回目录 随着越来越多的公司开始重视数据的积累和产品的敏捷开发,数据量的不断增加和开发周期的不断缩短,就形成了一对明显的矛盾 ...

  5. 在 Nuxt.js 和 Vue.js 项目中引入第三方字体或艺术字

    一.需求分析 在我们写前端页面的时候,大部分时候是不需要用到第三方字体的,但如果是面向C端的页面,比如宣传页,就有可能会引入第三方字体,主要还是看UI设计师咋想了,此时我们可以通过让UI将特殊字体切成 ...

  6. android项目中自定义顶部标题栏,Android项目中自定义顶部标题栏

    Android项目中自定义顶部标题栏 下面给大家详细介绍android中自定义顶部标题栏的思路及实现方式 先来图: 思路及实现步骤 1.定义标题栏布局 2.自定义TitleActivity控制标题栏按 ...

  7. 通用返回_Springboot项目整合通用mapper

    1.简介 什么是通用mapper 什么是通用mapper,用一句话概括就是,它就是一个辅助mybatis开发的组件,它不是替代mybatis,而是使mybatis更方便的开发.通用mapper提供极其 ...

  8. java日志怎么实现_JAVA项目中怎么实现一个通用日志记录功能

    JAVA项目中怎么实现一个通用日志记录功能 发布时间:2020-11-21 17:04:50 来源:亿速云 阅读:53 作者:Leah 今天就跟大家聊聊有关JAVA项目中怎么实现一个通用日志记录功能, ...

  9. vue项目中keep-alive的使用,从详情页返回列表时保存浏览位置

    背景描述: 最近在做移动端前端项目中,需要实现以下场景: 1.在页面查询列表,进入详情页时,返回需要页面返回到上次浏览的位置 2.由于查询列表获取的数据可能会短时间改变,如果前端长时间缓存数据,并不符 ...

最新文章

  1. 直流稳压电源的输出特性有哪些
  2. hdu 4888 最大流慢板
  3. java学习入门怎么做最为高效
  4. php mysql 单例模式_PHP单例模式_PHP单例模式数据库连接类
  5. Repository 返回 IQueryable?还是 IEnumerable?
  6. 查询Oracle正在执行的sql语句,锁表,解锁
  7. oracle 触发器
  8. 【小程序案例】支付宝小程序-MQTT模器,IoT设备通过WSS接入阿里云IoT物联网平台...
  9. Uvalive - 3026 Period (kmp求字符串的最小循环节+最大重复次数)
  10. 【强烈推荐】蒋勋细说《红楼梦》
  11. IDC:2016年上半年宏杉科技同比增长47.3% 中国TOP10数据存储厂商增速第一
  12. Vijos训练计划 1-1 计数问题
  13. 关于计算机的病毒案例分析,实例解析蠕虫病毒的原理 -电脑资料
  14. 项目启动报 JDBC Driver has been forcibly unregistered
  15. CSS transform属性+js requestAnimationFrame函数实现旋转方块以及调整转动速度
  16. PS2023和2022版本保姆级安装教程【博主亲测】
  17. 运营商精准大数据获客 网站APP访客实时截流
  18. 人工智能就业前景如何?
  19. .dwg(sw)-exb
  20. 去除警告 ArrayList is a raw type

热门文章

  1. 网页设计趋势:模糊背景在网站中的经典应用案例
  2. centos下搭建Jenkins持续集成环境(安装jenkins)
  3. Android控制ScrollView滑动速度
  4. Linux基线合规检查中各文件的作用及配置脚本
  5. Apple Swift编程语言新手教程
  6. JavaWeb重要知识点总结
  7. CentOS下Samba文件服务器的安装与配置
  8. 查看Linux上程序或进程用到的库
  9. 一、OpenStack架构
  10. An HTML5 presentation builder — Read more