Android Toolbar封装

1、QToolbar是什么

标题栏控件,基于Toolbar控件封装

  • 有返回按钮
  • 左标题
  • 居中标题
  • 子标题
  • 右侧菜单

优势:

继承于Toolbar,Toolbar的API QToolbar都支持,会toolbar可轻松上手

效果图:

2、如何使用

xml中引入com.qw.widget.appbar.QToolbar控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"android:orientation="vertical"tools:context=".MainActivity"><com.qw.widget.appbar.QToolbarstyle="?attr/toolbarStyle"android:layout_width="match_parent"android:layout_height="wrap_content"app:title="居中的标题"app:menu="@menu/toolbar"app:titleGravity="center"app:navigationIcon="@drawable/ic_baseline_arrow_back_ios_24" /><com.qw.widget.appbar.QToolbarstyle="?attr/toolbarStyle"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="32dp"app:title="居左标题"app:menu="@menu/toolbar"app:navigationIcon="@drawable/ic_baseline_arrow_back_ios_24"app:titleGravity="left" />
</LinearLayout>

属性介绍:

app:titleGravity 标题方向值有:left,center 默认center

API:

设置文本方向

public static final int GRAVITY_LEFT = 0;
public static final int GRAVITY_CENTER = 1;
public void setTextGravity(int gravity) {this.titleGravity = gravity;
}

设置title

public void setTitle(CharSequence title) {
}

3、自定义样式

<style name="Theme.QAppbar" parent="Theme.MaterialComponents.DayNight.NoActionBar"><!-- Primary brand color. --><item name="colorPrimary">@color/purple_500</item><item name="colorPrimaryVariant">@color/purple_700</item><item name="colorOnPrimary">@color/white</item><!-- Secondary brand color. --><item name="colorSecondary">@color/teal_200</item><item name="colorSecondaryVariant">@color/teal_700</item><item name="colorOnSecondary">@color/black</item><!-- Status bar color. --><item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item><!-- Customize your theme here. --><item name="toolbarStyle">@style/Toolbar</item>
</style>
<style name="Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface"><!-- 重写titleTextAppearance即可 --><item name="titleTextAppearance">@style/TitleTextAppearance</item><!-- 文字顔色 --><item name="titleTextColor">?attr/colorOnPrimary</item><item name="titleGravity">center</item>
</style>
<style name="TitleTextAppearance"><!-- 文字大小 --><item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item><!-- 文字顔色 --><item name="android:textColor">?android:attr/textColorPrimary</item>
</style>

注意:Toolbar在设置控件文本是先设置 titleTextAppearance 后设置 titleTextColor

toolbar 源码 setTitle方法

public void setTitle(CharSequence title) {if (!TextUtils.isEmpty(title)) {if (mTitleTextView == null) {final Context context = getContext();mTitleTextView = new AppCompatTextView(context);mTitleTextView.setSingleLine();mTitleTextView.setEllipsize(TextUtils.TruncateAt.END);if (mTitleTextAppearance != 0) {mTitleTextView.setTextAppearance(context, mTitleTextAppearance);}if (mTitleTextColor != null) {mTitleTextView.setTextColor(mTitleTextColor);}}if (!isChildOrHidden(mTitleTextView)) {addSystemView(mTitleTextView, true);}} else if (mTitleTextView != null && isChildOrHidden(mTitleTextView)) {removeView(mTitleTextView);mHiddenViews.remove(mTitleTextView);}if (mTitleTextView != null) {mTitleTextView.setText(title);}mTitleText = title;
}

8-10行设置文本样式 11-13行设置文本颜色

4、github地址

qinweiforandroid/QAppbar (github.com)

如有问题可以与我联系 QQ:435231045 请注明来源

Android Toolbar 居中相关推荐

  1. Android Toolbar配合menu使用详解

    Android Toolbar配合menu使用详解 Toolbar使用 普通menu使用 上下文menu使用: PopupMenu菜单: 历史上的今天(2021.3.5): 1898年3月5日,周恩来 ...

  2. android toolbar控件,Android Toolbar控件

    1. Toolbar类 Toolbar是替代ActionBar的产物,低版本可以使用v7兼容包,使用Theme.AppCompat主题,并添加配置. false true 2. Toolbar配置 主 ...

  3. Android Toolbar设置向上箭头,标题等

    Android Toolbar设置向上箭头,标题等 标签: android布局 2016-07-25 22:58 1163人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得 ...

  4. 最详细的 Android Toolbar 开发实践总结一

    最详细的 Android Toolbar 开发实践总结 2016-02-25    分类:Android开发.编程开发.首页精华12人评论     来源:D_clock 分享到:更多12 过年前发了一 ...

  5. Android的布局有哪几种,Android布局居中的几种做法

    Android的布局文件中,如果想让一个组件(布局或View)居中显示在另一个布局(组件)中,可以由这么几种做法: android:layout_gravity android:gravity and ...

  6. toolbar标题居中android,Toolbar实现标题居中效果

    Toolbar用的非常多,可定制,很灵活. 它默认title是在toolbar内部左侧,其实这本没有什么,但是大家都把title往中间挪. 找了一下,没有找到设置title位置的方法,看大家都是往To ...

  7. Android Toolbar 标题居中及字体样式自定义

    首先找到 toolbar 所在xml布局文件,将toolbar控件放置在一个相对布局(RelativeLayout)中,然后设置 toolbar 的 title 为空(在 title 属性栏中随便打几 ...

  8. Android - toolbar navigation 样式

    1.修改title 边距 修改边距使用系统的app属性来引入使用,即: xmlns:app="http://schemas.android.com/apk/res-auto" 1 ...

  9. android toolbar 开发总结

    1.如何设置右边菜单距离右边的距离 在xml里面 <android.support.v7.widget.Toolbarxmlns:android="http://schemas.and ...

最新文章

  1. 金士顿u盘量产工具_与时俱进,金士顿双接口优盘支持Type C接口
  2. 为什么说BCH是最安全的数字货币之一?
  3. stm32 sdio acmd41 无响应。一直是返回0x3f。解决方法是清除crc错误中断
  4. 就是这么迅猛的实现搜索需求--转
  5. 全球及中国有机肥料行业投资价值与营销品牌战略报告2022版
  6. CF1654F-Minimal String Xoration【倍增】
  7. Lucene4:创建查询,并高亮查询关键词
  8. 问题解决 xenapp6/6.5发布资源管理器explorer应用不能打开 一闪而过
  9. yii mysql条件查询_mysql – 在Yii2 find()/ QueryBuilder中使用WHERE条件的SELECT子查询
  10. MagicDraw UML 16.8 安装教程(2)-破解补丁
  11. poj 3660 Cow Contest floyd 传递闭包!!基础
  12. 大型体检系统源码,PEIS医院体检管理系统源码
  13. 代码雨【code rain】 cmd 命令快速实现 + java 实现
  14. 收藏多年的MySQL函数大全笔记,笔记一生一起走,那些日子不再有!
  15. 网络爬虫法即将出台!!!小爬怡情,大爬over
  16. 最网最全python框架--scrapy(体系学习,爬取全站校花图片),学完显著提高爬虫能力(附源代码),突破各种反爬
  17. fi sap 凭证冲销 稅_SAP FI 系列 (019) - 会计凭证的冲销和反记账
  18. 仿猫眼电影在线选座组件
  19. Linux驱动学习12(初步认识内存管理)
  20. UEFI 基础教程 (十四) - 设置默认启动项为UEFI Shell

热门文章

  1. Java中的日期类Calendar的常用方法
  2. Java图形程序设计(一)
  3. react-native 调试工具 flipper watchman openssl 未安装(win)
  4. java判断按钮_java判断哪个按钮被点击
  5. 妙莲千里寻师拜访记【转】
  6. 国产软件出头 | Web版数据库管理工具 SQL Studio颠覆市场
  7. html+css+javascript实现打印名片
  8. Python环境:解决win10虚拟环境激活失败的问题
  9. Kubernetes应用实例-GuestBook
  10. jquery给标签添加属性禁止编辑属性