设置应用栏

最基本的操作栏会在一侧显示 Activity 的标题,在另一侧显示一个溢出菜单。即便是这种简单的应用栏也能为用户提供有用的信息,并有助于赋予 Android 应用一致的观感。

图 1. 包含应用标题和溢出菜单的应用栏。

从 Android 3.0(API 级别 11)开始,所有使用默认主题的 Activity 均使用 ActionBar 作为应用栏。不过,经过不同 Android 版本的演化,应用栏功能已逐渐添加到原生 ActionBar 中。因此,原生 ActionBar 的行为会随设备使用的 Android 系统的版本而发生变化。相比之下,最新功能已添加到支持库版本的 Toolbar 中,并且这些功能可以在任何能够使用该支持库的设备上使用。

因此,您应使用支持库的 Toolbar 类来实现 Activity 的应用栏。使用支持库的工具栏有助于确保您的应用在最大范围的设备上保持一致的行为。例如,Toolbar 小部件能够在运行 Android 2.1(API 级别 7)或更高版本的设备上提供 Material Design 体验,但除非设备运行的是 Android 5.0(API 级别 21)或更高版本,否则原生操作栏不会支持 Material Design。

向 Activity 添加工具栏

以下步骤说明了如何将 Toolbar 设置为 Activity 的应用栏:

  1. 按照支持库设置中所述向您的项目添加 v7 appcompat 支持库。
  2. 确保 Activity 可以扩展 AppCompatActivity
    public class MyActivity extends AppCompatActivity {
      // ...
    }
    

    :请为您应用中每个使用 Toolbar 作为应用栏的 Activity 进行此更改。

  3. 在应用清单中,将 <application> 元素设置为使用 appcompat 的其中一个 NoActionBar 主题。使用这些主题中的一个可以防止应用使用原生 ActionBar 类提供应用栏。例如:
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. 向 Activity 的布局添加一个 Toolbar。例如,以下布局代码可以添加一个 Toolbar 并赋予其浮动在 Activity 之上的外观:
    <android.support.v7.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 规范建议应用栏具有 4 dp 的仰角。

    将工具栏定位在 Activity 布局的顶部,因为您要使用它作为应用栏。

  5. 在 Activity 的 onCreate() 方法中,调用 Activity 的 setSupportActionBar() 方法,然后传递 Activity 的工具栏。该方法会将工具栏设置为 Activity 的应用栏。例如:
    @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 的应用栏后,您就可以访问 v7 appcompat 支持库的 ActionBar 类提供的各种实用方法。您可以通过此方法执行许多有用的操作,例如隐藏和显示应用栏。

要使用 ActionBar 实用方法,请调用 Activity 的 getSupportActionBar() 方法。此方法将返回对 appcompat ActionBar 对象的引用。获得该引用后,您就可以调用任何一个 ActionBar 方法来调整应用栏。例如,要隐藏应用栏,请调用 ActionBar.hide()

posted @ 2017-06-20 15:20  YouseiRaws  阅读(407)  评论(0编辑  收藏  举报