MaterialDesign4Appandroid开发基础

关于Toolbar你需要知道的各种sao姿势。(操作篇)

2017-06-16  本文已影响1094人  Terry

什么是Toolbar?

appbar_sheets.png

头到尾,工具栏可以包含以下可选的元素:

如何使用Toolbar?

Android Api中给我们提供了多个版本的Toolbar给我们使用,包括3.0引入的ActionBar和v21中的Toolbar,但是为了达到应用体验的一致性以及如今纷繁复杂的android平台差异化的情况下我们选择__
android.support.v7.widget.Toolbar__的Toolbar来使用。

Material Design 规范建议应用栏具有 4 dp 的elevation.

给Toolbar添加Action View & Action Providers

appbar_with_button.png

添加Action View

要添加Action View我们需要了解2个属性:

效果如下图:


action_view.png

如果你需要配置这个action,在你的Activity的重写方法onCreateOptionsMenu()。你可以通过 getActionView()
拿到view的引用。

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_activity_actions, menu);

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView =(SearchView) MenuItemCompat.getActionView(searchItem);

    // Configure the search info and add any event listeners...
     return super.onCreateOptionsMenu(menu);
}

另外,如果想单独处理当action展开或者收缩,你可以定义一个实现MenuItem.OnActionExpandListener接口的类,然后调用setOnActionExpandListener()。如下代码所示:

    @Override
      public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.options, menu);
      // ...

    // Define the listener
    OnActionExpandListener expandListener = new OnActionExpandListener() {
        @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        // Do something when action item collapses
        return true;  // Return true to collapse action view
    }

    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        // Do something when expanded
        return true;  // Return true to expand action view
        }
    };

        // Get the MenuItem for the action item
        MenuItem actionMenuItem = menu.findItem(R.id.myActionItem);

        // Assign the listener to that action item
        MenuItemCompat.setOnActionExpandListener(actionMenuItem, expandListener);

        // Any other things you have to do when creating the options menu…
        return true;
}

添加Action Provider

要添加一个Action Provider,首先在资源文件res/menu/下面添加资源文件,并添加actionProviderClass属性,然后把actionProviderClass的名字填写完整。
举个例子,下面代码是声明了一个 ShareActionProvider,功能是能够允许你的app分享数据到其他app:

<item android:id="@+id/action_share"
      android:title="@string/share"
      app:showAsAction="ifRoom"
      app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>

总结

Toolbar的android api支持的操作大概也就这些,具体详细可以参考Toolbar官方的api文档。下面我将在关于Toolbar你需要知道的各种sao姿势(主题篇)中介绍如何管理Toolbar的样式。

上一篇下一篇

猜你喜欢

热点阅读