带有文本的菜单仅显示在工具栏中

时间:2017-02-07 09:44:58

标签: android text menu toolbar

我必须在工具栏中显示图标,徽标和文字(下一步)。接下来是对齐的。我尝试通过菜单放置文本。我已将徽标和后退按钮设置为工具栏。

toolbar.setLogo(R.mipmap.logo);
toolbar.setNavigationIcon(R.mipmap.back);

另外,我在onCreateOptionsMenu

中夸大了以下菜单

菜单膨胀:

<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_next"
    android:title="@string/next"
    app:showAsAction="always" />

文字菜单完全不可见。如果我在菜单项中放置图标,它会显示出来。 我使用过android.support.v7.widget.Toolbar。

已编辑:

我解决了。如果其他人对这样的问题感到震惊。

请添加

<item name="android:actionMenuTextColor">@color/blue</item>

风格。菜单项目在单击时被选中但不可见,表示它在白色工具栏上显示白色文本颜色。设置menuText颜色解决了我的问题。

3 个答案:

答案 0 :(得分:1)

Android Documentation解释withText的{​​{1}}选项

  

还包括带有操作项的标题文本(由android:title定义)。

由于这是你想要的,所以编码如下。

showAsAction

答案 1 :(得分:0)

您可以这样做:

首先,删除活动中的默认标题:

getSupportActionBar().setDisplayShowTitleEnabled(false);

然后,您的工具栏布局可以是这样的:

<LinearLayout
    android:id="@+id/toolbar_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <android.support.v7.widget.Toolbar
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/material_blue"
        android:elevation="5dp"
        android:minHeight="?attr/actionBarSize" >

        <TextView
            android:id="@+id/toolbar_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:gravity="end"
            android:text="@string/app_name"
            android:textColor="@android:color/white" />
    </android.support.v7.widget.Toolbar>
</LinearLayout>

并且,在您的活动中处理点击事件:

toolbarTop.findViewById(R.id.toolbar_title).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Log.d(TAG,"Clicked");
    }
});

答案 2 :(得分:0)

尝试更改以支持小部件。这对我有用

app:actionViewClass="android.support.v7.widget.SearchView"

更改后的外观

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <item android:id="@+id/search"
        android:title="@string/search_title"
        android:icon="@drawable/ic_search"
        app:showAsAction="always|withText"
        app:actionViewClass="android.support.v7.widget.SearchView"
        tools:context=".AppHome.HomeActivity"/>
</menu>