2017-02-07 4 views
0

Мне нужно отобразить значок, логотип и текст (далее) на панели инструментов. Затем выравнивается вправо. Я попытался разместить текст через меню. Я установил логотип и кнопку «Назад» на панели инструментов.Меню с текстом, которое не отображается на панели инструментов

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> 

стилей. Элемент менюw выбирается по клику, но не отображается, означает, что он показывает белый текст на белой панели инструментов. Настройка цвета menuText решила мою проблему.

+0

Я думаю, что ваш логотип панели инструментов и значок навигации занимают много места. Вы добавили 'setSupportActionBar (панель инструментов)'? –

+0

если вы используете белую панель инструментов, то зачем использовать тему в качестве темного ... если вы используете легкое меню темы меню, станет черным, это лучшее решение –

+0

Я использовал легкую тему. Но указали colorPrimary как белый, который где-то использовался. – seema

ответ

0

Android Documentation объясняет, что withText варианта для showAsAction воли

также включает в себя текст заголовка (определяется андроид: название) с элементом действия.

Поскольку это то, что вы хотите, введите код.

<item 
android:id="@+id/action_next" 
android:title="@string/next" 
app:showAsAction="always|withText" /> 
+0

Спасибо, его разрешили, добавив текст текста в стилях. Он работает сейчас. – seema

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> 

И в вашей деятельности обработайте событие click:

toolbarTop.findViewById(R.id.toolbar_title).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Log.d(TAG,"Clicked"); 
    } 
}); 
Смежные вопросы