android Toolbar实现顶部的导航

news/2025/3/26 11:21:42/文章来源:https://www.cnblogs.com/cxeye/p/18793425

Android Toolbar 实现顶部的导航
在现代 Android 应用开发中,Toolbar 是一个常用的组件,作为一种现代化的解决方案,能够提供良好的用户体验。本文将介绍如何使用 Android Toolbar 实现顶部的导航,包括代码示例和应用示例,确保你可以轻松上手。

什么是 Toolbar?
Toolbar 是一个可自定义的标题栏,可以作为 ActionBar 的替代方案,提供了更灵活的用户界面设计。它支持多种功能,包括菜单项、导航图标和自定义视图等。Toolbar 的设计使得它更容易与应用的设计主题相结合。

如何在 Android 应用中实现 Toolbar
1. 添加依赖
在使用 Toolbar 之前,确保在 build.gradle 中添加以下依赖:

AI检测代码解析

dependencies {implementation 'androidx.appcompat:appcompat:1.3.0'
}

 

2. 在布局文件中添加 Toolbar
在你的活动(Activity)或片段(Fragment)布局文件中定义 Toolbar。例如:

AI检测代码解析

<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="
xmlns:app="
android:layout_width="match_parent"
android:layout_height="match_parent"><androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />

 

<!-- 其他视图,例如 RecyclerView 或 Fragment -->

</androidx.coordinatorlayout.widget.CoordinatorLayout>

3. 在活动中设置 Toolbar
在你的活动类中使用 setSupportActionBar() 来设置 Toolbar。例如:

import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 获取 ToolbarToolbar toolbar = findViewById(R.id.toolbar);setSupportActionBar(toolbar);// 设置Toolbar标题getSupportActionBar().setTitle("主页面");// 启用导航返回图标getSupportActionBar().setDisplayHomeAsUpEnabled(true);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// 处理Toolbar上的点击事件if (item.getItemId() == android.R.id.home) {finish(); // 返回上一个Activityreturn true;}return super.onOptionsItemSelected(item);}
}

 


4. 设置菜单项
为了增强 Toolbar 的功能,可以在 Toolbar 上添加菜单项。首先创建菜单资源文件 menu/main_menu.xml:

<menu xmlns:android="<itemandroid:id="@+id/action_search"android:title="搜索"android:icon="@drawable/ic_search"app:showAsAction="ifRoom" /><itemandroid:id="@+id/action_settings"android:title="设置"app:showAsAction="never" />
</menu>

 

然后在活动中加载这个菜单:

@Override
public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main_menu, menu);return true;
}@Override
public boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case R.id.action_search:// 处理搜索操作return true;case R.id.action_settings:// 处理设置操作return true;default:return super.onOptionsItemSelected(item);}
}

 

结论
通过上述步骤,我们可以在 Android 应用中成功实现 Toolbar。这种自定义的用户界面组件为应用提供了更好的可用性和交互体验。希望这篇文章对你理解和使用 Android Toolbar 有所帮助,你可以根据需要对其进行进一步的扩展和功能实现。如果你对 Android 开发感兴趣,可以继续探索更多的 Jetpack 组件和 UI 设计原则。

如果你也想自学Android,可以关注我。我会把踩过的坑分享给你,相关的教程以及配套的讲解 ,分享给大家:

 

-----------------------------------
©著作权归作者所有:来自51CTO博客作者mob649e815da088的原创作品,请联系作者获取转载授权,否则将追究法律责任
android Toolbar实现顶部的导航
https://blog.51cto.com/u_16175472/12104316

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906076.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20242924 2024-2025-2 《网络攻防实践》实践四报告

20242924 2024-2025-2 《网络攻防实践》实践4报告 1.实践内容 在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。 1.1 ARP缓存欺骗攻击 ARP(Address Resolution Protocol):即地…

TCPing:用于测试禁ping设备的 TCP 连接的可达性

场景: 当设备被禁止 icmp 协议通过时,可以使用 tcp 来测试网络的连通性以及延迟TCPing tcping 是一个类似于ping 的工具,但它用于测试 TCP 连接的可达性,而不仅仅是 ICMP(传统的 ping)连接。它通过尝试与远程主机上的指定端口建立 TCP 连接,来判断目标主机的端口是否开放…

Go打包dll

1. goland 编写 代码package main/* #include <stdlib.h> */ import "C"//export Add func Add(a, b int) int {return a + b }//export Greet func Greet(v *C.char) *C.char {name := C.GoString(v)return C.CString("Hello from !" + name) } //e…

SpringSecurity5(11-跨域配置)

Spring Security跨域配置通过在WebSecurityConfigurerAdapter中自定义CorsConfiguration实现。可以配置允许的请求来源、请求方法、请求头等,以确保前端与后端之间的安全通信。结合@CrossOrigin注解或CorsFilter进行灵活配置,保障不同源的资源访问权限控制和数据安全。Spring…

AI大模型危机-多维对抗时代的网络安全与隐私困局

文章学习笔记:AI大模型危机-多维对抗时代的网络安全与隐私困局AI发展引发的安全风险与日俱增,加剧了网络安全形式的复杂性。本文剖析了大模型全生命周期安全威胁图谱,揭示数据资源枯竭、隐私泄露、监管滞后等风险问题。 AI大模型驱动网络安全风险”多维裂变“ AI大模型的发展…

CB2401是一款高性能、低功耗可完美替代RFX2401C/AT2401C

CB2401是一款高性能、低功耗的2.4GHz射频前端集成电路(RFIC),专为蓝牙、Zigbee和2.4GHz专有协议无线应用设计。该芯片可完美替代RFX2401C和AT2401C,提供更优的性能和更低的功耗。 主要技术参数核心优势 更高发射功率:+22dBm输出功率,比竞品高出2dB,通信距离更远 更低功耗:…

CH341 Linux驱动 设备驱动连接后又自动关闭

1.uname -r 查看linux版本号2.选择合适内核下的驱动 https://elixir.bootlin.com/linux/v6.8/source/drivers/usb/serial/ch341.c 3.make & make install 4.发现/dev下没有ttyUSB0设备 5.dmesg 发现问题 6043.015612] usb 1-4.2: ch341-uart converter now attached to tty…

会计学-现金流表(三)

介绍 什么是现金流量表?:就是反映你当前现金状况的一个表。 由四个部分构成:期初现金 + 本期流入现金 - 本期流出现金 = 期末现金一个企业或者一个家庭很多时候,即使是落入资不抵债的局面,也未必就会陷入破产,只要他的现金流可以一直维持日常运转,就可以不需要被迫去变卖…

会计学-资产负债表(二)

介绍 什么是资产负债表?:反映的是一家公司或者是一个家庭在某一时刻体量的表。 公式是:资产 = 负债 + 所有者权益。 资产负债表分成左右两栏,左边是资产,右边是负债和权益。 资产表示你的家底有多厚,负债和权益表示这些家底是从哪里来的。会计学上的资产负债表比较复杂的…

王炸!Kafka 4.0 重磅发布,Java 8 和 Zookeeper 彻底被抛弃了,一个时代结束了!

大家好,我是R哥。 Kafka 4.0 终于来了!这次更新可不只是常规的版本优化,而是一次重大架构调整,尤其是不再支持 Java 8,彻底移除了 Zookeeper,正式启用 KRaft 模式,让 Kafka 变得更加独立、高效。 除了这个重磅更新外,Kafka 4.0 还砍掉了一些历史包袱,还带来几个重磅新…

会计学-开篇(一)

介绍 是不是觉得会计学极其枯燥,死板,无趣?因为会计准则本身就是人为设定的游戏规则,整个学习过程感觉就是一直在背诵各种条条框框,完全没有创造性。相比之下,不管是数学,编程,物理学,生物学,投资学,都显得很有意思,这些学科都是帮助我们通向创造。而会计学似乎只会…