Android工具栏ToolBar

主流APP除了底部有一排标签栏外,通常顶部还有一排导航栏。在Android5.0之前,这个顶部导航栏以ActionBar控件的形式出现,但AcionBar存在不灵活、难以扩展等毛病,所以Android5.0之后推出了ToolBar工具栏控件,意在取代AcionBar。

但为了兼容之前的版本,ActionBar按件仍然保留。ToolBarActionBar都占着顶部导航栏的位置,要想引入ToolBar就得先关闭ActionBar。

关闭ActionBar步骤:

(1)styles.xml中定义一个不包含ActionBar的风格样式,代码如下:

res / values / styles.xml (需自行创建)

html 复制代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"/>
</resources>

(2) 修改AndroidManifest.xml清单文件,把activity节点的 android:theme属性值 改为上一步定义的风格主题,如:

html 复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        ... ...
        android:theme="@style/Theme.ToolBarTest">  //这里修改改变全部Activity主题

        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:theme="@style/MyTheme">  //这里修改改变本Activity主题

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

ToolBar在XML中使用方法:

html 复制代码
//例
<androidx.appcompat.widget.Toolbar

    android:id="@+id/toolBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:logo="@drawable/icon2"
    app:title="Title"
    app:navigationIcon="@drawable/zerotwo"
    app:subtitle="subTitle"

    />

ToolBar的常用属性、设置方法及说明:

logo setLogo 设置工具栏图栏。
titlesetTitle 设置标题文本。
titleTextColorsetTitleTextColor 设置标题的文字颜色。
titleTextAppearancesetTitleTextAppearance 设置标题的文字风格(外观)。 风格定义在styles.xml中。

subtitlesetsubtitle 设置副标题文本。副标题在标题下方。
subtitleTextColorsetSubtitleTextColor 设置副标题的文字颜色。
subtitleTextAppearance setSubtitleTextAppearance 设置副标题的文字风格(外观)。

navigationIcon setNavigationIcon 设置左侧导航图标。
监听器无属性 setNavigationOnClickListener 设置导航图标的点击监听器。

相关推荐
没有晚不了安3 分钟前
1.11作业
android
zhangphil5 分钟前
Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(1)
android·kotlin
布谷歌7 分钟前
Oops! 更改field的数据类型,影响到rabbitmq消费了...(有关于Java序列化)
java·开发语言·分布式·rabbitmq·java-rabbitmq
PXM的算法星球9 分钟前
java(spring boot)实现向deepseek/GPT等模型的api发送请求/多轮对话(附源码)
java·gpt·microsoft
被程序耽误的胡先生12 分钟前
java中 kafka简单应用
java·开发语言·kafka
F202269748624 分钟前
Spring MVC 对象转换器:初级开发者入门指南
java·spring·mvc
楠枬1 小时前
网页五子棋——对战后端
java·开发语言·spring boot·websocket·spring
YXWik61 小时前
23种设计模式
java·设计模式
貂蝉空大1 小时前
uni-app开发安卓和ios app 真机调试
android·ios·uni-app