[英]How to set icons on Android Viewpager With TabLayout
I want to show icons and Title on my Viewpager. 我想在Viewpager上显示图标和标题。 activity_main.xml
activity_main.xml中
<android.support.v4.view.ViewPager android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/pageViewer"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.v4.view.ViewPager>
CustomPagerAdapter.java CustomPagerAdapter.java
public class TabsAdapter extends FragmentPagerAdapter {
public TabsAdapter(FragmentManager fg){
super(fg);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 1:
return new TabBlueFragments();
case 0:
return new TabGreenFragment();
case 2:
return new TabRedFragment();
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position){
case 1:
return "Blue";
case 0:
return "Green";
case 2:
return "Red";
}
return "";
}
@Override
public int getCount() {
return 3;
}
}
Section of MainActivity.java where i call adapter. 我在MainActivity.java中调用适配器的部分。
viewPager=(ViewPager)findViewById(R.id.pageViewer);
TabsAdapter adapter = new TabsAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
I missed a method of returning icons. 我错过了一种返回图标的方法。 But titles are displayed properly.
但是标题显示正确。
You can use SpannableStringBuilder to create an Icon with text UI for the page title. 您可以使用SpannableStringBuilder为页面标题创建带有文本UI的Icon。 Refer below code:
请参考以下代码:
@Override
public CharSequence getPageTitle(int position) {
switch (position){
case 1:
SpannableStringBuilder blue = new SpannableStringBuilder("Blue
");
myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(),
myDrawable.getIntrinsicHeight());
ImageSpan span = new ImageSpan(myDrawable,
ImageSpan.ALIGN_BASELINE);
blue.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return blue;
case 0:
SpannableStringBuilder green = new SpannableStringBuilder("Green
");
myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(),
myDrawable.getIntrinsicHeight());
ImageSpan span = new ImageSpan(myDrawable,
ImageSpan.ALIGN_BASELINE);
green.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return green;
case 2:
SpannableStringBuilder red = new SpannableStringBuilder("Red
");
myDrawable.setBounds(0, 0, myDrawable.getIntrinsicWidth(),
myDrawable.getIntrinsicHeight());
ImageSpan span = new ImageSpan(myDrawable,
ImageSpan.ALIGN_BASELINE);
red.setSpan(span, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return red;
}
return "";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.