我有一个应用,可以使用自定义视图在操作栏中的标签旁边添加一个小图形,并在文本中设置ImageSpan
,如下所示。
private void NotifyTab ( int state )
{
Console.WriteLine("Notifying tab " + state );
var tab = SupportActionBar.GetTabAt( state ).CustomView as TextView;
String title;
if ( ARTIST == state )
{
title = GetString( Resource.String.menu_artists );
}
else
{
title = GetString( Resource.String.menu_friends );
}
SpannableString text = new SpannableString( " " + title );
ImageSpan icon = new ImageSpan( this, Resource.Drawable.ico_indicator, SpanAlign.Baseline );
text.SetSpan( icon, 0, 1, SpanTypes.InclusiveInclusive );
tab.SetText( text, TextView.BufferType.Spannable );
}
此代码运行正常,直到我将相同的样式应用于选项卡,因为操作栏标签使用Widget.Sherlock.ActionBar.TabText
后ImageSpan
停止工作。
是否有人知道导致此问题的属性以及是否有解决方法?我想知道它是否是由强制使用所有大写字母或衬线字体引起的。
答案 0 :(得分:1)
解决了,事实证明
<item name="android:textAllCaps">true</item>
有罪方是否被移除ImageSpan
出现。一个简单的解决方法是使字符串资源大写,问题就消失了。