我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何​在Activity中添加ToolBar控件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何​在Activity中添加ToolBar控件

今天就跟大家聊聊有关如何在Activity中添加ToolBar控件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

在Activity中添加ToolBar

添加库

dependencies {  ...  compile "com.android.support:appcompat-v7:18.0.+"}

Activity要继承AppCompatActivity

设置主题

使用ToolBar,要将系统默认的ActionBar隐藏掉

<application  android:theme="@style/Theme.AppCompat.Light.NoActionBar"  />

在XML添加ToolBar布局

<android.support.v7.widget.Toolbar  android:id="@+id/my_toolbar"  android:layout_width="match_parent"  android:layout_height="?attr/actionBarSize"  android:background="?attr/colorPrimary"  android:elevation="4dp"  android:theme="@style/ThemeOverlay.AppCompat.ActionBar"  app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Material Design specification 建议设置 elevation 为 4dp

Toolbar放在Activity的顶部(等于废话)

设置ToolBar

在Activity的onCreate()方法中,调用setSupportActionBar()方法,把我们的ToolBar对象传递进去,将我们xml中添加的ToolBar设置为我们这个Activity页面的App Bar。

@Overrideprotected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_my);  Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);  setSupportActionBar(myToolbar);  }

现在,我们的页面中,应该就会有一个App Bar了,默认情况下,这个App Bar只会显示一个App的名字和一个带有下拉选项的按钮,也可以在App Bar上添加更多的选项按钮

添加并处理一个Action

ToolBar允许在上面添加操作按钮,但是因为ToolBar上空间是有限的,如果一个程序有太多的Action,那么可以将Action添加到下拉菜单中,而不显示在ToolBar上

如何​在Activity中添加ToolBar控件

添加一个Action按钮

可以在XML文件中定义所有我们想添加的操作按钮和下拉列表中的行为,如果想要添加Action,可以在 res/目录下创建一个新的XML文件,添加元素。例如这样

<menu xmlns:android="http://schemas.android.com/apk/res/android" >  <!-- "Mark Favorite", should appear as action button if possible -->  <item    android:id="@+id/action_favorite"    android:icon="@drawable/ic_favorite_black_48dp"    android:title="@string/action_favorite"    app:showAsAction="ifRoom"/>  <!-- Settings, should always be in the overflow -->  <item android:id="@+id/action_settings"     android:title="@string/action_settings"     app:showAsAction="never"/></menu>

App:showAsAction 属性是用来设置Action显示在哪,如果我们设置 app:showAsAction =”ifRoom”(示例中最常用的一种方式) ,这个Action将显示在ToolBar上,如果ToolBar上没有足够的控件,则显示在下拉菜单中。如果在程序中设置为 app:showAsAction=”never”,那么这个Action将永远显示在下拉列表中,而不会显示在ToolBar上。
响应操作(回调)

当用户选择了一个Action后,系统会回调 onOptionsItemSelected() 方法并传递 MenuItem 对象,在 onOptionsItemSelected() 的实现中,调用 MenuItem.getItemId() 方法来确定按下了哪个项目。返回的 ID 与您在相应的 元素 Android: id 属性中声明的值匹配。

例如下面

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {    case R.id.action_settings:      // User chose the "Settings" item, show the app settings UI...      return true;    case R.id.action_favorite:      // User chose the "Favorite" action, mark the current item      // as a favorite...      return true;    default:      // If we got here, the user's action was not recognized.      // Invoke the superclass to handle it.      return super.onOptionsItemSelected(item);  }}

添加一个回到主界面的按钮

应用为了使用户可以方便的回到主界面,ToolBar可以添加一个按钮,直接返回到指定的主界面。

如何​在Activity中添加ToolBar控件

声明主界面(父界面)

需要在清单文件中通过设置 android: parentActivityName 属性声明,如果要支持旧版本的Android设备,需要定义 ,类似这样:

<application ... >  ...  <!-- The main/home activity (it has no parent activity) -->  <activity    android:name="com.example.myfirstapp.MainActivity" ...>    ...  </activity>  <!-- A child of the main activity -->  <activity    android:name="com.example.myfirstapp.MyChildActivity"    android:label="@string/title_activity_child"    android:parentActivityName="com.example.myfirstapp.MainActivity" >    <!-- Parent activity meta-data to support 4.0 and lower -->    <meta-data      android:name="android.support.PARENT_ACTIVITY"      android:value="com.example.myfirstapp.MainActivity" />  </activity></application>

使用返回按钮

若要使用返回的按钮,需要调用setDisplayHomeAsUpEnabled()方法,类似这样:

@Overrideprotected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_my_child);  // my_child_toolbar is defined in the layout file  Toolbar myChildToolbar =    (Toolbar) findViewById(R.id.my_child_toolbar);  setSupportActionBar(myChildToolbar);  // Get a support ActionBar corresponding to this toolbar  ActionBar ab = getSupportActionBar();  // Enable the Up button  ab.setDisplayHomeAsUpEnabled(true);}

添加Action Views

和上面 添加并处理一个Action 类似,只不过设置 showAsAction 为 “ifRoom|collapseActionView” 或者 “never|collapseActionView” 就可以了,类似这样

<item android:id="@+id/action_search"   android:title="@string/action_search"   android:icon="@drawable/ic_search"   app:showAsAction="ifRoom|collapseActionView"   app:actionViewClass="android.support.v7.widget.SearchView" />

如何​在Activity中添加ToolBar控件

这里我们添加的是一个带有搜索功能的Search按钮,如果我们要自定义一个自己的按钮,不添加 actionViewClass 即可

如果想要配置这个Action,可以在 onCreateOptionsMenu() 的回调里通过 getActionView() 获取到Search对象,类似这样:

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {  getMenuInflater().inflate(R.menu.main_activity_actions, menu);  MenuItem searchItem = menu.findItem(R.id.action_search);  SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);  // Configure the search info and add any event listeners...  return super.onCreateOptionsMenu(menu);6 }

看完上述内容,你们对如何在Activity中添加ToolBar控件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何​在Activity中添加ToolBar控件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何​在Activity中添加ToolBar控件

今天就跟大家聊聊有关如何在Activity中添加ToolBar控件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Activity中添加ToolBar1.添加库dependencie
2023-05-31

如何在表单设计中添加filelistbox控件

要在表单设计中添加filelistbox控件,可以按照以下步骤进行操作:1. 打开表单设计工具,比如Microsoft Access或者Visual Studio中的Windows Forms Designer。2. 在工具箱中找到并点击f
2023-09-26

listview控件如何添加数据

ListView控件可以通过Adapter来添加数据。以下是通过适配器添加数据的一般步骤:1. 创建列表项布局:创建一个XML布局文件,该布局文件描述了每个列表项的外观和布局。例如,你可以创建一个名为list_item.xml的布局文件,其
2023-08-09

qt控件如何添加代码

要在Qt控件中添加代码,您可以使用以下步骤:1. 打开Qt Creator并创建一个新的Qt项目。2. 在Qt Designer或通过代码创建所需的控件。您可以使用Qt Designer在.ui文件中设计控件,然后将其转换为C++代码;或者
2023-09-29

WinForm中如何添加一个按钮控件

要在WinForm中添加一个按钮控件,可以按照以下步骤操作:打开Visual Studio并创建一个新的WinForm项目。打开窗体设计器,在工具箱中找到按钮控件(通常是一个带有“Button”标签的按钮图标)。将按钮控件拖动到窗体上的
WinForm中如何添加一个按钮控件
2024-03-12

WinForm中如何添加图表或图形控件

在WinForm中添加图表或图形控件通常使用第三方控件库,比如DevExpress、Telerik等,或者使用.NET Framework自带的System.Windows.Forms.DataVisualization库。下面以Syste
WinForm中如何添加图表或图形控件
2024-04-08

如何在 launch.json 文件中添加 -race 参数?

本篇文章向大家介绍《如何在 launch.json 文件中添加 -race 参数?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。问题内容我在 visual studio code 中调试 go 程序。如何在 launch.jso
如何在 launch.json 文件中添加 -race 参数?
2024-04-05

如何在jquery中添加css

本篇文章给大家分享的是有关如何在jquery中添加css,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在jquery中,可以使用css()方法来添加css样式。css() 方法
2023-06-15

如何在ADO中添加记录

本篇内容主要讲解“如何在ADO中添加记录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在ADO中添加记录”吧!并非所有的数据库都支持零长度的字符串,ADO 添加记录因而当添加带有空白字段的记
2023-06-17

mfc控件无法添加变量如何解决

如果MFC控件无法添加变量,可能是因为以下原因:1. 控件的类没有正确继承自MFC的控件类。确保你的控件类继承自适当的基类,比如CButton、CEdit等。2. 控件没有声明为成员变量。在你的对话框类(或其他包含控件的类)中,将控件声明为
2023-09-07

在css中如何添加脚注

这篇文章主要介绍在css中如何添加脚注,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在css中添加脚注的方法:注释是以“斜杠+星号”开始,“星号+斜杠”结束,需要注意是注释字符均为英文半角小写,语法为【/* 注释内容
2023-06-14

windows中studioone如何添加插件

今天小编给大家分享一下windows中studioone如何添加插件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。studi
2022-12-05

如何在Git中去除已经添加的文件

Git是现代软件开发中最重要的工具之一,它具有强大的版本控制和协作功能。Git的最基本概念之一是“stage”,一种暂存已更改的文件的功能。当文件被暂存时,Git会跟踪对文件的更改,以便在提交到存储库时包含所有更改。但如果你不小心添加了一个
2023-10-22

ASP.NET中如何为服务器控件添加客户端功能

这篇文章主要介绍了ASP.NET中如何为服务器控件添加客户端功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ASP.NET控件开发基础之服务器控件客户端功能1.减轻服务器压
2023-06-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录