设置应用栏

尝试 Compose 方法
Jetpack Compose 是 Android 推荐的 UI 工具包。了解如何在 Compose 中添加组件。

在其最基本的形式中,操作栏在一侧显示活动的标题,在另一侧显示溢出菜单。即使在这种基本形式下,应用栏也为用户提供了有用的信息,并使 Android 应用具有统一的外观和风格。

An image showing the app bar in the Now in Android app
图 1.“现在在 Android 上”应用中的应用栏,其中包含一个操作图标。

所有使用默认主题的活动都具有ActionBar作为应用栏。应用栏功能通过各种 Android 版本添加到本机ActionBar。因此,本机ActionBar的行为会因设备使用的 Android 版本而异。

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

出于此原因,请使用 AndroidX 库的Toolbar类来实现活动的应用栏。使用 AndroidX 库的工具栏可确保您的应用在最广泛的设备上保持一致的行为。

向活动添加工具栏

这些步骤介绍了如何将Toolbar设置为活动的应用栏
  1. 将 AndroidX 库添加到您的项目中,如AndroidX 概述中所述。
  2. 确保活动扩展AppCompatActivity

    Kotlin

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

    Java

    public class MyActivity extends AppCompatActivity {
      // ...
    }
    
  3. 在应用清单中,将<application>元素设置为使用 AppCompat 的NoActionBar主题之一,如下例所示。使用这些主题之一可防止应用使用本机ActionBar类提供应用栏。
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. 向活动的布局添加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 规范

    由于您将其用作应用栏,因此请将工具栏置于活动布局的顶部。

  5. 在活动的onCreate()方法中,调用活动的setSupportActionBar()方法并传递活动的工具栏,如下例所示。此方法将工具栏设置为活动的应用栏。

    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);
    }
    

您的应用现在拥有一个基本操作栏。默认情况下,操作栏包含应用名称和溢出菜单,该菜单最初包含“设置”项。您可以向操作栏和溢出菜单添加更多操作,如添加和处理操作中所述。

使用应用栏实用程序方法

将工具栏设置为活动的应用栏后,您可以访问 AndroidX 库的ActionBar类提供的实用程序方法。这种方法可以让您执行一些有用的操作,例如隐藏和显示应用栏。

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