如何更改操作栏中文本的背景?

时间:2016-03-09 19:10:43

标签: android background android-actionbar contextual-action-bar

我有一个上下文操作栏,当选择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>

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分: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);