Android 工具栏不做我想做的事

标签 android android-toolbar

我的应用程序中有一个几乎全屏的对话框 fragment ,顶部包含一个工具栏。我想像 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>

在我的对话框 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. “保存”文本不会显示在复选标记旁边,即使有足够的空间放置它也是如此
  2. X 图标太大(也许使用 36dip 版本?)
  3. X 图标不可点击
  4. 工具栏不显示标题(“新建文件夹”)

我做错了什么?

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

最佳答案

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 图标是导航图标而不是菜单图标。

关于Android 工具栏不做我想做的事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28693159/

相关文章:

android - 开始时在 Room 中添加数据的最佳方法是什么?

Android - 使用垂直 "Number Slider"小部件

android - 如何修复android中的背景错误?

android - 在搜索栏中的两个连续进度点之间添加流畅的动画

android - 删除Android工具栏中汉堡包(菜单)图标后的大填充?

android - API 16/19 上的上下文工具栏操作模式背景为白色

java - 在物理设备上测试时工具栏标题保持黑色

android - 无法从 nativeInterface 访问 com.codename1.impl.android.AndroidNativeUtil

android - 包裹在 CollapsingToolbarLayout 中时如何显示工具栏的 Logo 、图标、标题、副标题?

java - android.support.v7.widget.Toolbar 在棉花糖设备上无法正常工作