Android 5.0(L) ToolBar(替代ActionBar) 实战(四)

休息了三天后,我又回来了,我们继续讨论Toolbar。

如果此前你是跟着连载一步一步走下来的,那么你应该会注意到MainActivity是一直在报警告的。因为其中我们声明了toolbar对象,但是一直没有使用。如果要实现菜单功能的话,就要使用了。

结合Toolbar使用菜单还是很容易的。只需在MainActivity中重写onCreateOptionsMenu()和onOptionsItemSelected()就可以了。这种方法已经有着悠久的历史,这里就不再多说了。

回忆一下ActionBar,此前的ActionBar在实现菜单时,如果遇到虚拟按键的机器,会在Activity的右上角显示菜单。如果遇到实体按键的机器,则不会,用户需要手动去触摸菜单键才能激活菜单。这其实是不太合理的,作为用户,很有可能不知道应用中还有菜单。因此,在Toolbar中,这个问题得到了很好的修复。效果就是,无论是否存在实体按键,右上角都会显示菜单,而要实现这一效果也是及其容易的,只需要下面的一句话:

setSupportActionBar(toolbar);

下面放上效果图:


细心的朋友可以发现,上方的Toolbar已经改变了样式,那么它又是如何实现的呢?

这里有两种方法:

1)在每个具有Toolbar的布局文件中定义风格;

2)在AndroidManifest中指向统一的应用主题样式。

前者不必多说,只需要在布局文件中指定特定字段的值就好。这里详细说下后者。

首先我们在布局文件中,除了Toolbar的位置、标题文本和ID外,不要给定任何其他的值,比如:

 <android.support.v7.widget.Toolbar
        android:id="@+id/demo_toolbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        app:title="@string/hello_world" />
然后,在values文件夹中创建theme.xml,在其中定义主题风格,下面列出这段程序清单:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 默认的蓝色风格 -->
    <style name="DefaultBlueTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <!-- Toolbar风格 -->
        <item name="toolbarStyle">@style/DefaultBlueToolbar</item>
    </style>

    <!-- 默认的Toolbar样式 -->
    <style name="DefaultBlueToolbar" parent="@style/Widget.AppCompat.Toolbar">
        <item name="android:background">@color/default_blue</item>
        <item name="titleTextAppearance">@style/ToolBarTitleTextStyle</item>
    </style>

</resources>
引用的颜色值如下,在color.xml中定义:

    <color name="default_blue">#33B5E5</color>
    <color name="default_white">#FFFFFF</color>
这样就实现了上图的效果。

到此,下一章我们探讨一下关于侧边栏的开发使用。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萧文翰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值