某些样式是否在TextView中禁用ImageSpan

时间:2013-08-16 10:33:05

标签: android tabs actionbarsherlock xamarin.android

我有一个应用,可以使用自定义视图在操作栏中的标签旁边添加一个小图形,并在文本中设置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.TabTextImageSpan停止工作。

是否有人知道导致此问题的属性以及是否有解决方法?我想知道它是否是由强制使用所有大写字母或衬线字体引起的。

1 个答案:

答案 0 :(得分:1)

解决了,事实证明

<item name="android:textAllCaps">true</item>

有罪方是否被移除ImageSpan出现。一个简单的解决方法是使字符串资源大写,问题就消失了。