web-dev-qa-db-ja.com

android:Android Support Libバージョン4からPagerTabStripにアイコン/ドローアブルを追加するにはどうすればよいですか?

Android:Android Support Libバージョン4からPagerTabStripにアイコン/ドローアブルを追加する方法は?

これはPagerTabStripを知っている人にとって非常に具体的な質問です。どこにも十分な例が見つかりませんでした。どういうわけか新しいので(PagerTabStrip)、十分な情報を見つけることができませんでした。

25
Shehabic

SpannableStringまたはSpannableStringBuilderを使用して、アイコン/ドローアブルをPageTabStripに簡単に追加できます。

たとえば、テキストの前にアイコンを表示するには:

Drawable myDrawable; //Drawable you want to display

@Override
public CharSequence getPageTitle(int position) {

    SpannableStringBuilder sb = new SpannableStringBuilder(" Page #"+ position); // space added before text for convenience

    myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight()); 
    ImageSpan span = new ImageSpan(myDrawable, ImageSpan.ALIGN_BASELINE); 
    sb.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

    return sb;
}
53
SteveR

@MatthewHousser SteveRのソリューションが機能しない場合は、XMLのPagerTabStripで固定サイズを設定したことが原因である可能性があります。これは私が持っていたものです:

<Android.support.v4.view.PagerTabStrip
        Android:id="@+id/pager_tab_strip"
        Android:layout_width="match_parent"
        Android:layout_height="30dp">
</Android.support.v4.view.PagerTabStrip>

これは私が今持っているものです:

<Android.support.v4.view.PagerTabStrip
        Android:id="@+id/pager_tab_strip"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content">
</Android.support.v4.view.PagerTabStrip>

画像は最初のケースでは表示されず、2番目のケースで表示されます。それが役立つことを願っています。

3
Jack'