Android 工具栏不符合我的要求

Android toolbar not doing what I want

我的应用程序中有一个几乎全屏的对话框片段,顶部有一个工具栏。我想像 Material design guidelines:

中那样设置此工具栏的样式

工具栏XML:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="@dimen/abc_action_bar_default_height_material"
    android:layout_width="match_parent"
    android:title="@string/new_folder"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:background="@color/primary_dark"/>

菜单XML:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools">
  <item
    android:id="@+id/action_done"
    android:title="@string/action_save"
    android:icon="@drawable/ic_done_white_48dp"
    android:orderInCategory="100"
    app:showAsAction="always|withText" />
</menu>

在我的对话框片段中,与工具栏相关的代码:

 private Toolbar.OnMenuItemClickListener mMenuItemListener = new Toolbar.OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case android.R.id.home:
                dismiss();
                return true;
            case R.id.action_done:
                dismiss();
                return true;
        }
      return false;
    }

...

    mToolbar.setNavigationIcon(R.drawable.ic_close_white_48dp);
    mToolbar.inflateMenu(R.menu.menu_folder);
    mToolbar.setOnMenuItemClickListener(mMenuItemListener);

我的工具栏是这样的:

我有四个问题:

  1. 'Save' 文本没有显示在复选标记旁边,即使它有足够的空间
  2. X 图标太大(也许使用 36dip 版本?)
  3. X 图标不可点击
  4. 工具栏不显示标题('New Folder')

我做错了什么?

请注意,我的工具栏没有设置为操作栏!它只是一个片段中的工具栏。

  1. 我认为您不应该,但应该在菜单侧(工具栏右侧)添加文本。查看指南,您会发现这不是一个好的做法,所有示例都只显示带有图标的菜单
  2. 根据指南,我认为您应该使用 24dp('Clearance' 部分中的http://www.google.com/design/spec/style/icons.html#icons-system-icons
  3. 使用

    toolbar.setNavigationOnClickListener();

  4. 您需要将标题设置为

    toolbar.setTitle("'新建文件夹")

The 'Save' text is not displayed next to the checkmark, even though there is ample room for it

这是不可能的。您可以仅显示文本或仅显示图标。

The X icon is too large (maybe use the 36dip version?)

你应该使用 24dp 版本。

The toolbar does not display the title ('New Folder')

因为您在 Fragment 中,所以您需要将标题明确设置到工具栏中,并且从您的代码中我看不到执行此操作的源代码。您需要以编程方式进行(通过 xml 它似乎已损坏),我更喜欢您使用支持库。

The X icon is not clickable

您需要使用 OnNavigationClickListener 而不是 OnMenuClickListener,您的 X 图标是导航图标而不是菜单图标。