谷歌最初推出Actionbar想用于安卓app统一导航行样式,但由于Actionbar自定义性不高,又不是很好看(很丑),民间开发出了另一种控件并被谷歌收入v7包下,它就是Toolbar

使用Toolbar有几点要注意的(这边使用的v7包的Toolbar,由于继承Activity已经过时,但如果实在想继承Activity的话,使用v4包下的Toolbar):

1.App主题使用NoActionBar

2.Activity需要继承AppCompatActivity

3.在代码中调用setSupportActionBar方法替换Actionbar

在xml中使用Toolbar:

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"

tools:context=".MainActivity">

android:id="@+id/tb_demo"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/colorPrimary">

在代码中设置属性,也可以在xml中使用app:属性名 直接设置

public class MainActivity extends AppCompatActivity {

private Toolbar toolbar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

toolbar = findViewById(R.id.tb_demo);

toolbar.setTitle("主标题");

toolbar.setSubtitle("副标题");

//设置左侧导航图标

toolbar.setNavigationIcon(R.drawable.ic_arrow_back_black_24dp);

//设置导航点击监听

toolbar.setNavigationOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

}

});

setSupportActionBar(toolbar);

}

}

toolbar.jpg

和Actionbar相同,Toolbar也支持菜单栏,我们需要在xml中定义,用法和NavigationView的菜单一样

xmlns:app="http://schemas.android.com/apk/res-auto">

android:title="搜索"

app:showAsAction="always" />

android:title="其他"

app:showAsAction="never" />

android:title="设置"

app:showAsAction="ifRoom" />

其中app:showAsAction可以设置item的显示,always表示一直显示,never表示一直放入overflow中(右侧更多图标的按钮),ifRoom表示如果显示不下,则放入overflow中,定义好xml后,需要在Activity中改写onCreateOptionsMenu方法

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu, menu);

return super.onCreateOptionsMenu(menu);

}

和NavigationView源码中一样使用的getMenuInflater方法获取xml解析器,在这里可以绑定点击事件,也可以通过Toolbar的setOnMenuItemClickListener方法设置,效果:

带菜单的toolbar.jpg

点击右侧overflow的toolbar.jpg

弹框的样式可以通过Toolbar的setPopupTheme方法改变

还可以通过style设置Toolbar的字体颜色,如设置副标题颜色:

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

#ffa000

除此以外,Toolbar还有这些API

ToolBar API

collapseActionView()

折叠当前展开了行动视图。

showOverflowMenu()

从显示相关的菜单溢出项目。

dismissPopupMenus()

关闭所有当前显示弹出式菜单,包括溢出或子菜单。

isOverflowMenuShowing()

检查溢出菜单是否正在显示。

inflateMenu(int resId)

膨胀的菜单资源到这个工具栏。

hideOverflowMenu()

隐藏关联菜单溢出项目。

setContentInsetEndWithActions(int insetEndWithActions)

设置开始的内容插入时操作按钮都存在使用。

setContentInsetStartWithNavigation(int insetStartWithNavigation)

设置启动内容插入时,导航按钮存在使用。

setContentInsetsRelative(int contentInsetStart, int contentInsetEnd)

设置此相对布局方向工具栏的内容插图。

setLogo(Drawable drawable)

设置一个Log图片。

setLogoDescription(int resId)

设置Log的说明。

setNavigationContentDescription(CharSequence description)

如果存在设置导航按钮的内容。

setNavigationOnClickListener(View.OnClickListener listener)

设置一个侦听器来导航事件

setOverflowIcon(Drawable icon)

设置图标使用的溢出按钮。

setSubtitle(CharSequence subtitle)

设置此工具栏的字幕。

setSubtitleTextAppearance(Context context, int resId)

设置文本颜色,大小,样式,颜色提示,并突出显示颜色从指定TextAppearance资源。

setTitleMargin(int start, int top, int end, int bottom)

设置标题边距。

setTitleTextAppearance(Context context, int resId)

设置文本颜色,大小,样式,颜色提示,并突出显示颜色从指定TextAppearance资源。

setTitleTextColor(int color)

设置标题的文本颜色,如果存在的话

android tool使用教程,Android--Toolbar基本使用相关推荐

  1. 视频教程-快速入门Android开发 视频 教程 android studio-Android

    快速入门Android开发 视频 教程 android studio 任苹蜻,爱学啊创始人 & CEO,曾就职于某二车手公司担任Android工程师后离职创办爱学啊,我们的宗旨是:人生苦短,我 ...

  2. Android开发入门教程--Android应用程序结构分析

    2019独角兽企业重金招聘Python工程师标准>>> 一.新建HelloWorld项目: 1.打开Eclipse,点击"File"->"New& ...

  3. android导航使用教程,android BottomNavigationView的简单使用教程

    每个android app都有BottomNavigationView导航,本人开发中刚刚使用到了BottomNavigationView,于是按照android developer官网特意做了一个符 ...

  4. android项目开发教程,Android项目开发教程

    Android项目开发教程 编辑 锁定 讨论 上传视频 Android项目开发教程 书    名 Android项目开发教程 作    者 车金庆.何征天.李琳.严正宇.周凌翱 类    别 图书&g ...

  5. android 画圆教程,android shap画圆(空心圆、实心圆)

    实心圆: android:shape="oval" android:useLevel="false"> android:width="1dp&q ...

  6. android游戏开发教程 android游戏项目教程

    丹丹老师android游戏开发视频教程150讲,本课程结合实下最为流行的Android飞行射击类游戏.RPG类游戏开发进行实战讲解,学员可在最短的时间内把技术运用到项目实战中,并能自己写出属于自己的A ...

  7. android 日历开发教程,android 开发教程之日历项目实践(三)

    二.创建样式 日历显示的表格线,使用 Cell 填充图形的边框来实现,为了统一,我们先定义边框线的颜色及线条精细. 另外还要定义一系统填充样式等. 创建 color: color_calendar_b ...

  8. android surface使用教程,Android:SurfaceView 的使用(附代码模板)

    前言 摘自<Android群英传> Android提供了View进行绘图处理,View可以满足大部分的绘图需求,但在某些时候也会心有余而力不足.我们知道,View通过刷新来重绘视图,And ...

  9. android nfc开发教程,Android NFC开发实战

    您可能感兴趣的话题: Android 核心提示:本教程为大家介绍android开发中NFC实例. 对于Android 4.0 SDK中提供的Beam例子,对于NFC开发来说的确是一个不错的模板.对于了 ...

最新文章

  1. 《公司的力量》读书笔记
  2. 类的内置方法__attr__介绍
  3. boost::mp11::mp_all_of相关用法的测试程序
  4. Spring的事务传播性
  5. php验证密码后跳转_php-laravel框架用户验证(Auth)模块解析(四)忘记密码
  6. 企业案例(二):增量恢复案例
  7. 数据库笔记11:创建与管理存储过程
  8. kippo mysql_Kippo:一款优秀的SSH蜜罐开源软件.pdf
  9. vue项目中出现cannot get/的解决办法
  10. Google App Engine CMS系统的搭建
  11. 小米路由器挂php,小米路由器mini 安装openWrt+更新源+挂载U盘+安装python
  12. 超详细|一篇搞定操作系统——文件管理
  13. 被公司解雇怎么维护自己的权益看看这几部法《劳动法》《劳动合同法》及《劳动合同法实施条例》
  14. ORACLE11gR2安装XDB
  15. 手机html设计规范,手机网页设计尺寸规范具体是多少?
  16. mysql中的事务和锁_MySQL中的事务和锁
  17. python画抛物线_python画抛物线
  18. mysql按天,小时,半小时,N分钟,分钟进行数据分组统计
  19. halcon中如何生成椭圆_教你动态生成椭圆,还教你怎么用海龟作图——GeoGebra制作教程...
  20. 数据库show的用法

热门文章

  1. jvm 分代回收算法通俗理解
  2. TaskTracker执行map或reduce任务的过程(二)
  3. jquery 读取页面load get post ajax 四种方式代码写法
  4. Jquery ui的dialog使用文档概述
  5. pycharm创建python虚拟环境好处_PyCharm虚拟环境创建Django2项目一些问题的解决方案...
  6. parrot linux iso下载,Parrot 4.7 发布,基于Debian的数字取证和隐私保护Linux发行版
  7. php中ajax用法,thinkphp中使用ajax
  8. mysql通过日志恢复数据_mysql通过binlog日志来恢复数据
  9. python找不到文件中文文件名_找不到的方法虽然存在于同一个py文件中 - python
  10. 液态渐变背景纹理,选择一个新潮的背景,为你的设计加分!