设置应用栏

试用 Compose 方式
Jetpack Compose 是推荐在 Android 设备上使用的界面工具包。了解如何在 Compose 中添加组件。
<ph type="x-smartling-placeholder"></ph> 应用栏 →

操作栏最基本的形式就是在一个屏幕上显示活动的标题, ,在另一侧显示一个菜单。即使采用这种基本形式,应用栏也提供 并赋予 Android 应用一致的外观和风格。

一张图片,显示 Now in Android 应用中的应用栏
图 1. “Now in Android”中带有操作图标的应用栏应用。

所有使用默认主题的 activity 都有一个 ActionBar作为应用 栏。通过各种方法将应用栏功能添加到原生 ActionBar 中 Android 版本。因此,原生 ActionBar 的行为会有所不同, 具体取决于设备搭载的 Android 版本。

另一方面,这些功能已添加到 AndroidX AppCompat 库的 Toolbar, 这意味着这些功能可以在使用 AndroidX 库的设备上使用。

使用 AndroidX 库的 Toolbar 类实现 activity 的 应用栏。使用 AndroidX 库的工具栏会使应用的 在各种设备上保持一致的行为。

向 Activity 添加工具栏

以下步骤说明了如何将 Toolbar 设置为 activity 的应用栏: <ph type="x-smartling-placeholder">
    </ph>
  1. 将 AndroidX 库添加到您的项目中,如 AndroidX 概览
  2. 确保 activity 可以扩展 AppCompatActivity:

    Kotlin

    class MyActivity : AppCompatActivity() {
      // ...
    }
    

    Java

    public class MyActivity extends AppCompatActivity {
      // ...
    }
    
    <ph type="x-smartling-placeholder">
  3. 在应用清单中,设置 <application> 元素,以使用 AppCompat 的某个 NoActionBar 主题,如以下示例所示。使用其中一个主题可防止 应用使用原生 ActionBar 类提供应用栏。
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. 向 activity 的布局添加一个 Toolbar。例如,以下 布局代码会添加一个 Toolbar,并赋予其浮动外观 在活动上方:
    <androidx.appcompat.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 规范 了解有关应用栏高度的建议。

    将工具栏放在 activity 的 layout,因为您使用的是 并将其显示为应用栏

  5. 在 activity 的 onCreate() 方法,调用 activity 的 setSupportActionBar() 方法并传递 Activity 的工具栏,如以下示例所示。这个 方法将工具栏设置为 Activity 的应用栏。

    Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // The Toolbar defined in the layout has the id "my_toolbar".
        setSupportActionBar(findViewById(R.id.my_toolbar))
    }
    

    Java

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

您的应用现在有了一个基本操作栏。默认情况下,操作栏包含 应用界面和一个溢出菜单,该菜单最初包含 Settings 菜单项。 您可以向操作栏和溢出菜单添加更多操作,如 添加和处理操作

使用应用栏实用程序方法

将工具栏设置为 activity 的应用栏后,您就可以访问该实用程序 AndroidX 库提供的方法 ActionBar 类。您可以通过此方法执行一些有用的操作,例如隐藏和显示应用栏。

如需使用 ActionBar 实用程序方法,请调用 activity 的 getSupportActionBar() 方法。此方法返回对 AppCompat ActionBar 对象的引用。 获得该引用后,您就可以调用任何 ActionBar 方法 调整应用栏。例如,要隐藏应用栏,请调用 ActionBar.hide()