ToolBar 常用属性

默认的ToolBar可能是这个样子

这里写图片描述

有时候可能需要标题居中,可在布局中添加一个TextView

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        app:titleTextColor="@android:color/white">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_gravity="center"
            android:text="Center Title"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@android:color/white"
            android:textStyle="bold"/>
    </android.support.v7.widget.Toolbar>

然后去掉默认的Title

  Toolbar toolbar = ((Toolbar) findViewById(R.id.toolBar));
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("");

然后界面应该是这个样子

这里写图片描述

二级页面看起来应该差一个返回按钮,这也很简单

  getSupportActionBar().setDisplayHomeAsUpEnabled(true);

返回按钮的颜色可能不是你想要的

在style 中新加一个style 如下

 <style name="toolBar">
        <item name="colorControlNormal">@android:color/white</item>
    </style>

然后在ToolBar布局中添加属性

 app:theme="@style/toolBar"

这个时候ToolBar应该长这个样子了

这里写图片描述


右边再来一个按钮

menu下新建一个menu文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context=".MainActivity">
    <item
        android:id="@+id/ab_search"
        android:icon="@drawable/menu_0"
        android:title="action_search"
        app:showAsAction="ifRoom"/>
</menu>

Activity中onCreateOptionsMenu

  public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.toolbar_main_menu, menu);
        return true;
    }

再加上事件监听

  @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        toast("onOptionsItemSelected");
        return super.onOptionsItemSelected(item);
    }

这里写图片描述

<think>首先,用户的问题是关于Visual Basic中的ToolBar控件的常用属性、方法和事件。用户要求详细解释这些内容。 根据系统指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - 使用LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考提供的引用内容。 提供的引用包括: - 引用[1]:关于ActiveX控件的优势。 - 引用[2]:关于在Office中使用VBA开发工具栏和菜单,涉及CommandBar对象等。 用户的问题是关于VB中的ToolBar控件,这可能是ActiveX控件的一部分。引用[2]似乎更相关,因为它讨论了工具栏的开发,尽管是在Office VBA上下文中。ToolBar控件在VB中通常是通过ActiveX控件实现的,比如Microsoft Toolbar Control。 在回答中,我需要自然地融入引用。引用[1]提到ActiveX控件在浏览器和VBA应用程序中的优势,这可能与ToolBar控件相关,因为ToolBar控件通常是ActiveX控件。引用[2]提供了CommandBar对象的细节,这在VB中可能不直接适用,因为VB有自己的ToolBar控件实现。 在Visual Basic中,ToolBar控件是Common Controls的一部分,通常通过MSCOMCTL.OCX提供。常用属性包括: - **Align**:设置工具栏的对齐方式。 - **Buttons**:表示工具栏上的按钮集合。 - **ImageList**:关联的图像列表控件。 - **ShowTips**:是否显示工具提示。 常用方法: - **Customize**:允许用户自定义工具栏。 - **RestoreToolbar**:恢复工具栏到默认状态。 常用事件: - **ButtonClick**:当用户点击按钮时触发。 - **ButtonMenuClick**:当点击按钮菜单时触发。 现在,结构回答: - 先介绍ToolBar控件。 - 然后分节:属性、方法、事件。 - 在适当的地方引用。 引用[1]可以用于强调ActiveX控件的优势,比如提供丰富的界面。引用[2]讨论了CommandBar对象,但VB的ToolBar控件可能不同。我可以提到在Office VBA中类似的概念,但强调VB中的实现。 生成相关问题:在回答末尾添加相关问题。 回答用中文。</think>### Visual Basic ToolBar 控件详解 在 Visual Basic (VB) 中,ToolBar 控件是一种 ActiveX 控件,通常用于创建工具栏,提供快速访问应用程序功能的按钮集合。它基于 `MSCOMCTL.OCX` 文件(Microsoft Common Controls),支持丰富的用户界面元素,如按钮、下拉菜单和分隔符。ActiveX 控件在 VB 中具有显著优势,例如,它可以提供比标准 HTML 表单更丰富的交互体验,并支持跨应用程序集成,这在开发复杂桌面应用时非常高效[^1]。下面,我将从常用属性、方法和事件三个方面详细解释 ToolBar 控件,帮助您逐步掌握其使用。 #### 1. ToolBar 控件的常用属性 ToolBar 控件的属性主要用于配置工具栏的外观和行为。以下是一些核心属性: - **Align 属性**:设置工具栏在窗体上的对齐方式。例如,`Align = vbAlignTop` 表示工具栏固定在窗体顶部,确保界面布局整洁。默认值为 `vbAlignTop`。 - **Buttons 属性**:这是一个集合对象,表示工具栏上的所有按钮。您可以使用 `Buttons.Add` 方法动态添加按钮,并设置每个按钮的索引、标题(如 `"保存"`)和样式(如 `tbrDefault` 表示标准按钮)。例如: ```vb ' 添加一个新按钮 ToolBar1.Buttons.Add , , "btnSave", "保存" ``` - **ImageList 属性**:指定关联的 ImageList 控件,用于为按钮提供图标。这能增强用户界面的直观性。例如,设置 `ToolBar1.ImageList = ImageList1` 后,按钮可以显示图像。 - **ShowTips 属性**:控制是否显示工具提示(ToolTip)。当设置为 `True` 时,用户悬停在按钮上会显示提示文本,提升用户体验。 - **Style 属性**:定义工具栏的样式。例如,`Style = tbrFlat` 使工具栏呈现扁平化外观,而 `Style = tbrStandard` 则使用传统 3D 效果。 - **AllowCustomize 属性**:允许用户自定义工具栏布局。设置为 `True` 时,用户可以通过双击工具栏打开自定义对话框。 这些属性共同确保工具栏能灵活适应不同应用场景,例如在 Office 集成中,类似的 CommandBar 对象也通过属性控制工具栏位置和外观[^2]。 #### 2. ToolBar 控件的常用方法 ToolBar 控件的方法用于操作工具栏的运行时行为,支持动态更新和交互: - **Customize 方法**:打开工具栏的自定义对话框,允许用户拖放按钮或更改布局。这在提供个性化界面时非常有用。例如: ```vb ToolBar1.Customize ' 触发自定义模式 ``` - **RestoreToolbar 方法**:将工具栏恢复到默认状态。当用户自定义后,您可以使用此方法重置。语法为 `RestoreToolbar(Key As String, Subkey As String, Version As Integer)`,其中 `Key` 是注册表键值,用于保存默认设置。 - **Buttons.Add 方法**:动态添加按钮到工具栏。参数包括索引、键值(唯一标识符)、标题和样式。例如: ```vb ToolBar1.Buttons.Add , "btnOpen", "打开", tbrDefault ``` - **Buttons.Remove 方法**:删除指定按钮。例如,`ToolBar1.Buttons.Remove "btnOpen"` 会移除键值为 "btnOpen" 的按钮。 - **SaveToolbar 方法**:保存当前工具栏状态到注册表或文件,便于后续加载。类似于 Office VBA 中的 CommandBar 持久化机制[^2]。 这些方法使工具栏高度可定制,支持动态调整按钮集合,类似于在 Office 中使用 VBA 管理 CommandBar 对象的方式[^2]。 #### 3. ToolBar 控件的常用事件 ToolBar 控件的事件处理用户交互,是编程的核心部分: - **ButtonClick 事件**:当用户点击工具栏按钮时触发。这是最常用的事件,您可以通过 `Button.Key` 或 `Button.Index` 识别被点击的按钮,并执行相应操作。例如: ```vb Private Sub ToolBar1_ButtonClick(ByVal Button As Button) If Button.Key = "btnSave" Then Call SaveFile ' 调用保存文件的子过程 End If End Sub ``` - **ButtonMenuClick 事件**:当用户点击按钮的下拉菜单时触发。适用于带有菜单的按钮(样式设置为 `tbrDropdown`)。 - **Change 事件**:当工具栏的布局或属性发生改变时触发,例如通过代码修改按钮集合。 - **MouseDown 和 MouseUp 事件**:响应鼠标操作,提供更精细的控制。 这些事件确保了工具栏的交互性,例如在集成到 VBA 应用程序时,能实现无缝的用户操作处理[^1]。 ### 总结 ToolBar 控件在 VB 中是构建高效用户界面的关键组件,通过属性配置外观、方法实现动态操作、事件处理用户交互。ActiveX 架构使其在跨平台集成中表现出色,提供比基本表单更丰富的功能[^1]。在实际开发中,建议结合 ImageList 控件增强可视化效果,并参考 Office VBA 的 CommandBar 对象设计理念进行优化[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值