我正在设置我的操作栏。我想要一个特定的文字颜色,一个特定的背景颜色,我希望它在左边有一个标志。我设法使用styles.xml中的代码修改文本和背景:
<resources>
<style name="MyTheme" parent="Theme.AppCompat.Light">
<item name="actionBarStyle">@style/MyTheme.actionBar</item>
<item name="android:textColorPrimary">#ffffff</item>
</style>
<style name="MyTheme.actionBar" parent="Widget.AppCompat.ActionBar">
<item name="background">@color/actionbar_background</item>
</style>
</resources>
但是当我在MyTheme.actionBar中添加此代码时,会出现徽标,但文本会消失。
<item name="logo">@mipmap/giftbox</item>
<item name="displayOptions">useLogo|showHome</item>
我该如何解决这个问题?
编辑:这是活动代码:
public class Person extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_person);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_person, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:0)
试试此代码
Spannable text = new SpannableString(actionBar.getTitle());
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
actionBar.setTitle(text);
答案 1 :(得分:0)
int titleId = getResources().getIdentifier("action_bar_title", "id",
"android");
TextView title = (TextView) findViewById(titleId);
通过此,您可以获得ActionBar
标题TextView
,您可以为其设置自己的文字,颜色,风格
答案 2 :(得分:0)
您可以使用徽标和textview创建自定义标题视图,并在活动中对其进行充气。使用这种方法,您还可以将任何颜色设置为背景。
在下面的代码中完成:
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.top_bar_light)));
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.headerbar_view, null);
imgvwRefrsh = (ImageView) mCustomView.findViewById(R.id.ximgvwrefresh);
imgvwStreamoid = (ImageView) mCustomView.findViewById(R.id.ximgvwStreamoid);
getSupportActionBar().setCustomView(mCustomView);
getSupportActionBar().setDisplayShowCustomEnabled(true);