Android工具栏ToolBar

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

但为了兼容之前的版本,ActionBar按件仍然保留。ToolBar 与ActionBar都占着顶部导航栏的位置,要想引入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 设置导航图标的点击监听器。

相关推荐
AI你一生一世4 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
云-缩影4 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
瑞克-桑切斯5 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
三少爷的鞋8 小时前
Android 架构七条铁律:架构师真正设计的不是代码,而是秩序
android
海的透彻9 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
xiangxiongfly9159 小时前
Android GsonFactory总结
android·gson·gsonfactory
code2cat9 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
后台模板学习10 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one10 小时前
算法--构造
java·数据结构·算法
SL_staff10 小时前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈