操作栏最基本的形式是在一侧显示 Activity 的标题,在另一侧显示溢出菜单。即使采用这种基本形式,应用栏也能向用户提供有用的信息,并让 Android 应用具有一致的外观和风格。

所有使用默认主题的 Activity 都具有 ActionBar
作为应用栏。应用栏功能通过各个 Android 版本添加到原生 ActionBar
中。因此,原生 ActionBar
的行为方式取决于设备使用的 Android 版本。
另一方面,功能已添加到 AndroidX AppCompat 库的 Toolbar
版本中,这意味着这些功能可在使用 AndroidX 库的设备上使用。
因此,使用 AndroidX 库的 Toolbar
类来实现 Activity 的应用栏。使用 AndroidX 库的工具栏可以使应用的 Behavior 在最广泛的设备上保持一致。
向 Activity 添加 Toolbar
这些步骤介绍了如何将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" />
- 向 Activity 的布局添加
Toolbar
。例如,以下布局代码添加了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); }
你的应用现在有一个基本操作栏。默认情况下,操作栏包含应用的名称和溢出菜单,其中最初包含“Settings”项。你可以向操作栏和溢出菜单添加更多操作,如添加和处理操作中所述。
使用应用栏实用方法
将工具栏设置为 Activity 的应用栏后,即可访问 AndroidX 库的 ActionBar
类提供的实用方法。通过这种方法,你可以执行许多有用的操作,例如隐藏和显示应用栏。
要使用 ActionBar
实用方法,请调用 Activity 的 getSupportActionBar()
方法。此方法返回 AppCompat ActionBar
对象的引用。获得该引用后,即可调用任意 ActionBar
方法来调整应用栏。例如,要隐藏应用栏,请调用 ActionBar.hide()
。