最基本的操作栏会在一侧显示 activity 的标题,在另一侧显示一个溢出菜单。即使采用这种基本形式,应用栏也能为用户提供有用的信息,并赋予 Android 应用一致的外观和风格。
![一张图片,显示了 Now in Android 应用中的应用栏](https://developer.android.google.cn/static/images/ui/notifications/actions_actionbar.png?authuser=0&hl=zh-cn)
所有使用默认主题背景的 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" />
- 向 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); }
您的应用现在有了一个基本操作栏。默认情况下,操作栏包含应用的名称和一个溢出菜单,该菜单最初包含设置项。您可以向操作栏和溢出菜单添加更多操作,如添加和处理操作中所述。
使用应用栏实用程序方法
将工具栏设为 activity 的应用栏后,您就可以访问 AndroidX 库的 ActionBar
类提供的实用程序方法。您可以通过此方法执行一些有用的操作,例如隐藏和显示应用栏。
如需使用 ActionBar
实用程序方法,请调用 activity 的 getSupportActionBar()
方法。此方法返回对 AppCompat ActionBar
对象的引用。获得该引用后,您可以调用任何 ActionBar
方法来调整应用栏。例如,如需隐藏应用栏,请调用 ActionBar.hide()
。