操作栏最基本的形式是在一侧显示 activity 的标题,在另一侧显示溢出菜单。即便是采用这种基本形式,应用栏也能为用户提供实用信息,并为 Android 应用带来一致的外观和风格。
![一张图片,显示 Now in Android 应用中的应用栏](https://developer.android.google.cn/static/images/ui/notifications/actions_actionbar.png?authuser=5&hl=th)
所有使用默认主题的 activity 都有一个 ActionBar
作为应用栏。在各种 Android 版本中,原生 ActionBar
中添加了应用栏功能。因此,原生 ActionBar
的行为会有所不同,具体取决于设备使用的 Android 版本。
另一方面,功能已添加到 AndroidX AppCompat 库的 Toolbar
版本,这意味着这些功能适用于使用 AndroidX 库的设备。
因此,请使用 AndroidX 库的 Toolbar
类来实现 activity 的应用栏。使用 AndroidX 库的工具栏可使应用的行为在尽可能多的设备上保持一致。
向 Activity 添加工具栏
以下步骤介绍了如何将Toolbar
设置为 activity 的应用栏:
- 按照 AndroidX 概览中的说明,将 AndroidX 库添加到您的项目中。
- 确保 activity 会扩展
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- 在应用清单中,将
<application>
元素设置为使用 AppCompat 的NoActionBar
主题之一,如以下示例所示。使用其中某个主题可防止应用使用原生ActionBar
类提供应用栏。<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- 将
Toolbar
添加到 activity 的布局中。例如,以下布局代码会添加一个Toolbar
,使其看起来像是悬浮在 activity 上方:<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 的布局的顶部,因为您要使用它作为应用栏。
- 在 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); }
您的应用现在有了一个基本操作栏。默认情况下,操作栏包含应用名称和一个溢出菜单,该菜单最初包含设置项。您可以向操作栏和溢出菜单添加更多操作,如添加和处理操作中所述。
使用应用栏实用程序方法
将工具栏设置为 activity 的应用栏后,您就可以访问 AndroidX 库的 ActionBar
类提供的实用程序方法。您可以通过此方法执行一些实用操作,例如隐藏和显示应用栏。
如需使用 ActionBar
实用程序方法,请调用 activity 的 getSupportActionBar()
方法。此方法会返回对 AppCompat ActionBar
对象的引用。获得该引用后,您就可以调用任何 ActionBar
方法来调整应用栏。例如,如需隐藏应用栏,请调用 ActionBar.hide()
。