Android 封装标题栏
写在前面:
标题栏这个部分,绝大多数App都有,起到一个概括本页面功能的作用,有些标题栏还具有返回上一页等额外功能。
在这里不得不表扬一下苹果的标题栏位设计,简洁美观实用,很有借鉴性
一、项目结构
主要由一个布局文件activity_title.xml和一个构造类TitleBuilder.java组成,布局文件定义标题栏样式,构造类负责设定文字内容,是否显示返回按钮等等。
二、代码设计
activity_title.xml 由一个绝对布局包裹两个图片控件和一个文本框控件组成
此处使用线性布局嵌套绝对布局,使内容可以更好地居中显示
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:background="#1B77A8"android:gravity="center_vertical"android:layout_width="match_parent"android:layout_height="50dp"><RelativeLayoutandroid:id="@+id/title_bar"android:paddingLeft="5dp"android:paddingRight="5dp"android:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:layout_centerVertical="true"android:visibility="gone"android:id="@+id/title_leftIco"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/title_text"android:textSize="20sp"android:textColor="#ffffff"android:layout_centerInParent="true"android:layout_width="wrap_content"android:layout_height="wrap_content" /><ImageViewandroid:visibility="gone"android:id="@+id/title_rightIco"android:layout_alignParentRight="true"android:layout_width="wrap_content"android:layout_height="wrap_content" /></RelativeLayout>
</LinearLayout>
TitleBuilder.java
/*** Created by PanZhe on 2016/7/22.*/
public class TitleBuilder {private View titleView;private RelativeLayout titleBar;private TextView text;private ImageView leftIco;private ImageView rightIco;/*** 构造方法:用于获取对象* */public TitleBuilder(Activity context){titleView = context.findViewById(R.id.title_bar);text = (TextView)titleView.findViewById(R.id.title_text);titleBar = (RelativeLayout)titleView.findViewById(R.id.title_bar);leftIco = (ImageView)titleView.findViewById(R.id.title_leftIco);rightIco = (ImageView)titleView.findViewById(R.id.title_rightIco);}/*** 用于设置标题栏文字* */public TitleBuilder setTitleText(String titleText){if(!TextUtils.isEmpty(titleText)){text.setText(titleText);}return this;}/*** 用于设置标题栏左边要显示的图片* */public TitleBuilder setLeftIco(int resId){leftIco.setVisibility(resId > 0 ? View.VISIBLE : View.GONE);leftIco.setImageResource(resId);return this;}/*** 用于设置标题栏右边要显示的图片* */public TitleBuilder setRightIco(int resId){rightIco.setVisibility(resId > 0 ? View.VISIBLE : View.GONE);rightIco.setImageResource(resId);return this;}/*** 用于设置标题栏左边图片的单击事件* */public TitleBuilder setLeftIcoListening(View.OnClickListener listener){if(leftIco.getVisibility() == View.VISIBLE){leftIco.setOnClickListener(listener);}return this;}/*** 用于设置标题栏右边图片的单击事件* */public TitleBuilder setRightIcoListening(View.OnClickListener listener){if(rightIco.getVisibility() == View.VISIBLE){rightIco.setOnClickListener(listener);}return this;}
}
三、使用方法
在需要的地方引入
<include layout="@layout/activity_title"/>
在java代码中使用new方法循环设置参数
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new TitleBuilder(this).setTitleText("测试标题").setLeftIco(R.drawable.left).setLeftIcoListening(leftReturnListener);}private View.OnClickListener leftReturnListener = new View.OnClickListener() {@Overridepublic void onClick(View view) {finish();}};
}
四、效果图
Android 封装标题栏相关推荐
- android中的标题栏是什么意思,Android通用标题栏组合控件
原标题:Android通用标题栏组合控件 快,点击蓝色"字体"关注这个公众号,一起涨姿势 由于项目中经常用到此种组合控件,就封装了下,具体效果看下图,老司机可以绕道哈! 一.主要功 ...
- 关于Android封装一个全局的BaseActivity你需要知道的
关于Android封装一个全局的BaseActivity你需要知道的 1.前言 2.特点 3.代码及说明 3.1.优缺点 3.2.代码 3.3.注意点 4.总结 5.最后 1.前言 对于一个Andro ...
- android分享的主标题,Android 自定义标题栏(title栏)
近日 需要在android的标题栏上添加按钮,所以对android的标题栏进行了一下简单的研究- 第一步,向实现自定义标题栏,需要在onCreate方法里这样写 requestWindowFeatur ...
- android封装好的Color类中的常量
通过android封装好的Color类中的常量 public static final int BLACK = 0xFF000000; public static final int DKGRAY = ...
- (转自ztp800201) Android - 自定义标题栏(在标题栏中增加按钮和文本居中)
现在很多的Android程序都在标题栏上都显示了一些按钮和标题,如下图: 下面通过实例来看一下如何实现. 1.在layout下创建一个titlebtn.xml文件,内容如下: 1 <?xml v ...
- android 刷新标题栏,Android 自定义标题栏的实例详解
Android 自定义标题栏的实例详解 开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标题栏传递数据. 本文要点: 自定义标题填充不完整 自定义标题栏返回按钮 ...
- Unity调用Android封装的声网sdk
文章目录 unity3调用Android 封装的声网SDK 1.环境版本 2.创建Android library 工程 3.unity3D 依赖包添加到工程libs下 4.UnityPlayerAct ...
- android标题栏渐变动画,Android 顶部标题栏随滑动时的渐变隐藏和渐变显示效果
各位早上好,话不多说,先上效果图: 注意顶部:首页textview的变化(显示和隐藏)! 首先分析下:ui状态,其是由recyclerview添加头部组成+recyclerview 头部添加和recy ...
- android封装网络请求界面,轻松搞定 android MVP 架构、okHttp 网络模块封装 的 项目...
CommonMvp commonMvp 能做什么? 1.mvp 实现 model view presenter 业务和界面解耦 2.整合 网络 请求 3.简化网络调用流程 4.整合状态栏和标题栏 实现 ...
- android标题栏添加按钮_几行代码实现Android通用标题栏(轻松向左右两侧添加Menu)...
秦子帅明确目标,每天进步一点点..... 作者 | 丶E 地址 | https://www.jianshu.com/p/8c15fc4114a7 前言 标题栏是app开发经常用到的东西,几乎每个页 ...
最新文章
- 【发现】ASP.NET DEVELOPMENT SERVER 未能开始侦听端口xxxxx以一种访问权限不允许的方式做了一个访问套接字的尝试——解决方法...
- Java核心类库-IO-字节数组流/内存流
- java事务不生效场景_springboot中使用@Transactional注解事物不生效的坑
- 关于Mybatis,我总结了 10 种通用的写法
- JavaFX中的塔防
- MySQL-回表查询与索引覆盖
- CentOS 7.0安装配置Vsftp服务器
- 【干货】60 余家免费正版图片网站
- GIS制图人员的自我修养(2)--制图意识
- JavaScript通过style只能获取内联 状态的样式
- docker-compose up是什么意思
- 纽微特纪事:吾是如何被架空的(各位引以为戒)
- 用DDA算法绘制一条直线
- Excel常用快捷键大全
- 12款在线批量缩短新浪短链接的生成器和接口api
- Linux下安装MySQL、安装注意事项以及安装问题解决等(以腾讯云服务为主)
- WRF气象数据之NECP FNL数据批量下载
- Mac OS X 通知中心彻底删除网站的通知
- java将map根据key分组_Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码...
- 电子商务系统设计经验分享