Android工具栏没有做我想要的

时间:2015-02-24 10:20:09

标签: android android-toolbar

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

中设置此工具栏的样式

material dialog

工具栏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>

在我的Dialog Fragment中,与工具栏相关的代码:

 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);

我的工具栏看起来像这样:

toolbar troubles

我有四个问题:

  1. &#39; Save&#39;复选标记旁边不显示文字,即使有足够的空间
  2. X图标太大(可能使用36dip版本?)
  3. X图标无法点击
  4. 工具栏不显示标题(&#39;新文件夹&#39;)
  5. 我做错了什么?

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

2 个答案:

答案 0 :(得分:2)

  

即使复选标记旁边也未显示“保存”文字   它有足够的空间

这是不可能的。您只能显示文字或仅显示图标。

  

X图标太大(可能使用36dip版本?)

你应该使用24dp版本。

  

工具栏不显示标题(“新建文件夹”)

因为你在Fragment中所以你需要将标题明确地设置到工具栏中,并且从你的代码中我看不到这样做的源代码。你需要以编程方式(通过xml看起来它已经坏了),我更喜欢你使用支持库。

  

X图标无法点击

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

答案 1 :(得分:1)

  1. 我不认为您应该在菜单一侧(工具栏右侧)显示文字。查看指南,您可以看到这不是一个好习惯,所有示例都只显示带有图标的菜单
  2. 根据指南,我认为您应该使用24dp(http://www.google.com/design/spec/style/icons.html#icons-system-icons部分&#39; Clearance&#39;)
  3. 使用

    toolbar.setNavigationOnClickListener();

  4. 您需要设置标题

    toolbar.setTitle(&#34;&#39;新文件夹&#34;)