我有一个应用程序,通过使用自定义视图并将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/

10-12 01:19