我有一个应用程序,通过使用自定义视图并将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
停止工作。有谁知道导致此问题的属性是什么,是否有解决方法?我想知道这是由于强制使用所有大写字母还是衬线字体引起的。
最佳答案
解决了,原来
<item name="android:textAllCaps">true</item>
是有罪的一方,删除后显示
ImageSpan
。一个简单的解决方法是使字符串资源大写,然后问题解决了。关于android - 做一些样式来禁用TextView中的ImageSpan,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18271269/