如何在工具栏中显示图标和文本

时间:2016-02-26 12:55:09

标签: android-toolbar optionmenu

我正在开发以下屏幕:

Screenshot

在工具栏上,您可以看到一个tick。我想显示文本“Create”以及此。我使用以下代码:

menu_new_group

  <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/createGroup"
        android:icon="@drawable/single_tick"
        android:orderInCategory="100"
        android:showAsAction="always|withText"
        android:title="Create"
        app:showAsAction="always|withText" />
</menu>

使用选项菜单的代码

  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.clear();
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.menu_new_group, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.createGroup:
                createNewGroup();
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }

请帮我在工具栏中添加文字和图标作为操作。

1 个答案:

答案 0 :(得分:2)

  

仅供参考,无法显示图标以及动作菜单的文本   同时在一个小间距的动作栏中。所以我们需要利用   actionLayout功能可显示图标+文字。

检查以下示例代码以了解实施情况。

菜单XML

<menu
   xmlns:android = "http://schemas.android.com/apk/res/android"
   xmlns:app = "http://schemas.android.com/apk/res-auto">
  <item
     android:id = "@+id/menu_profile"
     android:icon = "@android:drawable/ic_menu_save"
     android:title = "Save"
     app:actionLayout = "@layout/action_menu"
     app:showAsAction = "always"/>
</menu>

操作布局 - 就像只有Textview的普通布局文件一样。 action_menu.xml

<TextView
   xmlns:android = "http://schemas.android.com/apk/res/android"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:background = "@drawable/tab_selector"
   android:drawableRight = "@android:drawable/ic_menu_save"
   android:gravity = "center"
   android:text = "Save"
   android:textColor = "@android:color/white"/>

背景选择器 - 用于单击时突出显示。 tab_selector.xml

<selector xmlns:android = "http://schemas.android.com/apk/res/android">
  <item
     android:drawable = "#eeeeee"
     android:state_pressed = "true"/>
  <item
     android:drawable = "@android:color/transparent"/>
</selector>

在“代码”中,在onCreateOptionsMenu中设置单击侦听器,如下所示。

MenuItem item = menu.findItem(R.id.menu_profile);
item.getActionView().setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        Toast.makeText(Activity.this, "Save Clicked..", Toast.LENGTH_SHORT).show();
      }
    });

祝福......