Android开发笔记(一百一十九)工具栏ToolBar

本文详细介绍了在Android开发中如何使用Toolbar,包括导入android-support-v7-appcompat库,将Toolbar引入项目并应用常见方法。同时,探讨了SearchView的集成以及在Toolbar运行时可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

Toolbar

在前面的博文《 Android开发笔记(二十)顶部导航栏》中,我们学习了ActionBar的用法,可是ActionBar着实是不怎么好用,比如文字风格不能定制、图标不能定制,而且还存在低版本的兼容性问题,所以实际开发中大家还是不倾向使用ActionBar。为此,Android提供了加强版的工具栏控件即Toolbar,因为Toolbar继承自ViewGroup,而且可在布局文件中像其它布局视图一样使用,所以灵活性大大的提高了。既然Android都与时俱进了,那我们也不能落后,现在就来好好学学Toolbar的用法。


导入android-support-v7-appcompat

Toolbar包含在android-support-v7-appcompat.jar包中,但app工程还不能直接使用这个jar包,因为v7-appcompat是一个完整的工程,jar包里面大量引用了工程中的图片资源,所以我们要先把v7-appcompat导入为一个库工程,然后app工程再引用这个库工程。具体步骤如下所示:
1、SDK的Extra组件中的“Android Support Library”要更新到最新版本。
2、把v7-appcompat导入为一个库工程,v7-appcompat的源路径是sdk\extras\android\support\v7\appcompat。
3、把project.properties中的target改为23(注意库工程和app工程都要改),不然会出现如下错误:
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.  
Error:Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.  
4、删除values-v11与values-v14下面的styles.xml(注意库工程和app工程都要删),不然编译报错:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.exmtoolbar/com.example.exmtoolbar.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.


在项目中引入Toolbar

因为Toolbar与ActionBar都占着顶部导航栏的位置,所以要想引入Toolbar就得先关闭ActionBar啦,具体步骤如下所示:
1、在styles.xml中定义一个不包含ActionBar的风格样式
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/blue_light</item>
        <item name="colorPrimaryDark">@color/blue_light</item>
        <item name="colorAccent">@color/blue_light</item>
    </style>
2、修改AndroidManifest.xml,把application节点的android:theme属性值改为第一步定义的风格,如android:theme="@style/AppBaseTheme"
3、页面布局文件的根节点改为LinearLayout,且为vertical垂直方向;然后增加一个Toolbar元素,因为Toolbar本质是个ViewGroup,所以也可在它下面添加别的控件。下面是个布局例子片段:
    <android.support.v7.widget.Toolbar
        android:id="@+id/tl_head"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
4、Activity代码改为继承AppCompatActivity,注意早期的v7包是没有AppC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值