我正在尝试使用TabLayout创建ViewPager并在TabLayout中使用图标而不是文本。我尝试了关于stackoverflow的教程和答案,但没有任何帮助解决我的问题。
我的TabLayout
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
style="@style/MyCustomTabLayout"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:layout_alignParentBottom="true"
android:background="@color/colorPrimary"
app:tabGravity="fill"
app:tabMode="fixed"
local:theme="@style/ViewPagerTheme"
/>
MyCustomTabLayout样式
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
<item name="tabTextAppearance">@style/MyCustomTextAppearance</item>
</style>
<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
<item name="textAllCaps">false</item>
</style>
我的PagerAdapter getPageTitle()
@Override
public CharSequence getPageTitle(int position) {
Drawable image = ContextCompat.getDrawable(App.getContext(), PageInfo.getByPosition(position).getIConResId());
image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight());
SpannableString sb = new SpannableString(" ");
ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM);
sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
}
我正在使用带有
的样式 <item name="textAllCaps">false</item>
但是当我改变SpannableString sb = new SpannableString(" ");
时
这样的事情
SpannableString sb = new SpannableString("a");
我的TabLayout反映了大写字母A,如果留空格我的TabLayout没有值并且是空白的,我想问题应该在这一步,但我不知道如何解决它。
答案 0 :(得分:3)
试试这个:
for (int i = 0; i < tabLayout.getTabCount(); i++) {
tabLayout.getTabAt(i).setIcon(R.drawable.your_icon);
}
答案 1 :(得分:0)
您可以在标签布局中设置图标而不是字符串,为此使用以下代码行。
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setIcon());
答案 2 :(得分:0)