Android中导航栏之Toolbar的使用

Android中导航栏之Toolbar的使用,第1张

概述我们做APP页面的时候往往需要在头部的位置加一个导航栏,显示一下页面的标题,返回按钮,或者右侧还有有一些别的按钮。当然了,还会出现比如标签,搜索等比较高级一点的内容。如果开发时间较长的同学应该知道ActionBar,但这个已经过时了,因为定制难,长得丑都是它存在的问题。后来我们习惯了

我们做APP页面的时候往往需要在头部的位置加一个导航栏,显示一下页面的标题,返回按钮,或者右侧还有有一些别的按钮。当然了,还会出现比如标签,搜索等比较高级一点的内容。如果开发时间较长的同学应该知道Actionbar,但这个已经过时了,因为定制难,长得丑都是它存在的问题。后来我们习惯了自己写一个布局去替代它,使用include的方式引入,但是这样要么就是所有页面都要自己写一套,要么就是每种长得都不一样不好兼容。再后来我们学会了自定义控件写这个导航,这时就高级一些了,但很考量我们的技术功底。不过现在不用担心了,官方有了Toolbar,基本可以满足我们的导航栏需求了。下面我们就介绍一下Toolbar的一些基本用法。

1.Toolbar引入方法在styles.xml中定义一个不包含Actionbar的风格样式,代码如下:
 
<style name="Apptheme" parent="theme.AppCompat.light.NoActionbar"/>

 当然我们还可以使用如下代码隐藏Actionbar

<style name="Apptheme" parent="theme.AppCompat.light.DarkActionbar">    <item name="colorPrimary">@color/colorPrimary</item>    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>    <item name="colorAccent">@color/colorAccent</item>    <item name="windowNoTitle">true</item></style>

和新建项目自带的相比就是加了windowNoTitle这行。我一般喜欢用第二种。

不管用哪种,接下来我们需要把这个Apptheme主题配置给AndroIDManifest.xml的application节点下

androID:theme="@style/Apptheme">

 

接着我们要在布局中添加一个Toolbar控件。由于要用到Toolbar,所以外层布局要用线性布局,并设置为垂直方向,代码如下 
 

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:orIEntation="vertical">        <androIDx.appcompat.Widget.Toolbar        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:ID="@+ID/tl_head"/></linearLayout>

这里我使用的是androIDx,如果还没有升级到androIDx的同学,引入的是androID.support.v7.Widget.Toolbar,不过直接打Toolbar就能出来,只要看好是哪个就可以了。

最后我们的Activity要继承自AppCompatActivity,新建项目一般默认继承自AppCompatActivity,大家确定一下就好。接着我们初始化我们的Toolbar控件,这个不上代码了。然后调用setSupportActionbar进行设置。万整的Activity代码如下:
 

public class MainActivity extends AppCompatActivity {    private Toolbar tl_head;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        tl_head = findVIEwByID(R.ID.tl_head);        setSupportActionbar(tl_head);    }}

这样我们的Toolbar就显示出来了 。

2.Toolbar常用属性

此时大家如果照着上面的代码编写后运行,会发现虽然Toolbar成功显示出来了,但是除了一行文字什么都没有。那是因为我们什么都没有设置的缘故。Toolbar为我们提供了很多属性,常用的属性和方法如下:

XML中的属性Toolbar类的设置方法说明
logosetlogo设置工具栏图标
TitlesetTitle设置标题文字
TitleTextcolorsetTiitleTextcolor设置标题的文字颜色
TitleTextAppearancesetTitleTextAppearance设置标题的文字风格。风格定义在styles.xml中
subTitlesetSubTitle设置副标题文字。副标题在标题下方。
subTitleTextcolorsetSubTitleTextcolor设置副标题的文字颜色
subTitleTextAppearancesetSubTitleTextAppearance设置副标题的文字风格
navigationIconsetNavigationIcon设置左侧导航图标
setNavigationOnClickListener设置导航图标的点击监听器
3.Toolbar使用示例
public class MainActivity extends AppCompatActivity {    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        // 从布局文件中获取名叫tl_head的工具栏        Toolbar tl_head = findVIEwByID(R.ID.tl_head);        // 设置工具栏左边的导航图标        tl_head.setNavigationIcon(R.mipmap.ic_back);        // 设置工具栏的标题文本        tl_head.setTitle("工具栏页面");        // 设置工具栏的标题文字颜色        tl_head.setTitleTextcolor(color.RED);        // 设置工具栏的标题文字风格//        tl_head.setTitleTextAppearance(this, R.style.Tabbutton);        // 设置工具栏的标志图片        tl_head.setlogo(R.mipmap.ic_launcher);        // 设置工具栏的副标题文本        tl_head.setSubTitle("Toolbar");        // 设置工具栏的副标题文字颜色        tl_head.setSubTitleTextcolor(color.YELLOW);        // 设置工具栏的背景        tl_head.setBackgroundResource(R.color.blue_light);        // 使用tl_head替换系统自带的Actionbar        setSupportActionbar(tl_head);        // 给tl_head设置导航图标的点击监听器        // setNavigationOnClickListener必须放到setSupportActionbar之后,不然不起作用        tl_head.setNavigationOnClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw vIEw) {                finish(); // 结束当前页面            }        });    }}

 

总结

以上是内存溢出为你收集整理的Android中导航栏之Toolbar的使用全部内容,希望文章能够帮你解决Android中导航栏之Toolbar的使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1039966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存