Android:CardsLib卡不显示标题

时间:2015-01-09 15:46:49

标签: android google-maps-android-api-2 android-5.0-lollipop spannablestring cardslib

我使用Mariotti的CardsLib创建一个带有卡片的列表。我创建卡片(在for循环中),如下所示:

CustomCard aCard = new CustomCard(getActivity().getApplicationContext());
CardHeader aHeader = new CardHeader(getActivity().getApplicationContext());
aHeader.setTitle(item.getHeaderText());

aCard.addCardHeader(aHeader);
aCard.setSpannableMainTitle(true);
aCard.setmSsbTitle(CustomSpannableBuilderForHome.getSpannedText(item));

CardThumbnail thumbnail = new CardThumbnail(getActivity().getApplicationContext());
thumbnail.setDrawableResource(R.drawable.ic_launcher);
aCard.addCardThumbnail(thumbnail);
cards.add(0, aCard);

CustomCard是一个扩展Card类的类。我创建了这个类,因为我需要分配一个SpannableStringBuilder实例,而不是简单的String。这是CustomCard:

public class CustomCard extends Card {

    protected boolean isSpannableMainTitle;

    /**
     * Main Title
     */
    protected SpannableStringBuilder mSsbTitle;

    public SpannableStringBuilder getmSsbTitle() {
        return mSsbTitle;
    }

    public void setmSsbTitle(SpannableStringBuilder mSsbTitle) {
        this.mSsbTitle = mSsbTitle;
    }

    public boolean isSpannableMainTitle() {
        return isSpannableMainTitle;
    }

    public void setSpannableMainTitle(boolean isSpannableMainTitle) {
        this.isSpannableMainTitle = isSpannableMainTitle;
    }

    public CustomCard(Context context) {
        super(context);
    }

    @Override
    public void setupInnerViewElements(ViewGroup parent, View view) {
        //Add simple title to header
        if (view != null) {
            TextView mTitleView = (TextView) view.findViewById(R.id.card_main_inner_simple_title);
            if (mTitleView != null)
            {
                mTitleView.setText(isSpannableMainTitle? mSsbTitle : mTitle);
                if (isSpannableMainTitle) mTitleView.setMovementMethod(LinkMovementMethod.getInstance());
            }
        }
    }
}

在使用maps api V2之前,一切正常。今天,当文字不包含跨度时,卡片的标题不会出现。如果它确实有跨度,则仅显示跨度。值得一提的是,要设置的标题始终是SpannableStringBuilder的一个实例。 例如:

Text1 =这是一个没有跨度的文本

Text2 =这是一个(文本),带有(spans)< --- where()表示span的存在。

这是输出:

卡1:

图片+页眉+无文字

卡2:

图片+标题+(文字)(跨度)

也就是说,第一张卡片没有文字,而后者只显示跨文本(即这是一张片段,所有片段都被忽略了)。

正如我所说,一旦我加入Maps API V2,这种行为就开始了。请帮忙!

0 个答案:

没有答案