0

У меня есть контекстная панель действий, которая появляется, когда выбраны элементы из ListView.Как изменить фон текста в панели действий?

Похоже, это enter image description here

Sample Text на самом деле это кнопка, которая icon="@null" и title="Sample Text", которые будут делать некоторые вещи при нажатии. Как изменить фон этой кнопки на другой цвет, чтобы он стал интуитивно понятным, что это на самом деле кнопка, а не какой-то текст?

(дополнительная информация) Меню надувается при том, что XML, который это меню ниже

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/menu_sample_text" 
     android:icon="@null" 
     android:orderInCategory="100" 
     android:title="Sample Text" 
     app:showAsAction="ifRoom|withText"/> 
</menu> 

ответ

0
You can set your own layout on the 
action bar and then do whatever you want with the layout. 

    ActionBar ab = getActionBar(); 
    if (ab != null) { 

     LayoutInflater inflater = getLayoutInflater(); 
     View v = inflater.inflate(R.layout.home_actionbar, null); 
     ab.setCustomView(v); 
    } 

    // Keep a reference to the view so that you can manipulate the controls. 
+0

До сих пор так хорошо. И как изменить фон? – RafaelC

+0

Вниз проверки ответа без комментариев о том, почему или лучший ответ, не помогают. – mjstam

+0

Ваш ответ не имеет никакого отношения к вопросу. Прочтите еще раз;) – RafaelC

0

Вы можете сделать макет самостоятельно и установить его как вид ActionBar. В этом макете ваши кнопки могут иметь любой стиль, который вы хотите. Вот как я это делаю в своем приложении:

final ActionBar abar = getActionBar(); 
View viewActionBar = getLayoutInflater().inflate(R.layout.action_bar_layout, null); 
ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER); 
actionBarTitleTV = (TextView) viewActionBar.findViewById(R.id.actionbar_textview); 

abar.setCustomView(viewActionBar, params); 
abar.setDisplayShowCustomEnabled(true); 
abar.setDisplayShowTitleEnabled(false); 
abar.setDisplayHomeAsUpEnabled(true); 
abar.setIcon(R.color.transparent); 
abar.setHomeButtonEnabled(true); 
+0

Хотя он работает, я искал какой-то встроенный способ сделать это. Для создания полностью пользовательского ActionBar слишком много прямо сейчас! Но спасибо ! – RafaelC

+0

Нет проблем. Хотя я могу сказать вам, что это не такая уж большая проблема. Единственное неудобство состоит в том, что для обновления текста панели действий вам нужно сделать (TextView) viewActionBar.findViewById(), чтобы получить TextView и установить новый текст. Кроме того, это почти то же самое. Удачи! – Anonymous

Смежные вопросы