Sar*_*ami 7 tabs android android-fragments
如何在标签适配器中添加标签而不是标题,在android中扩展FragmentPagerAdapter?我不想在我的项目中使用操作栏
有什么帮助吗?
public class TabsPagerAdapter extends FragmentPagerAdapter {
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}
private final int[] icons = {R.drawable.home,R.drawable.buddies,R.drawable.notification,R.drawable.history};
@Override
public CharSequence getPageTitle(int position) {
if(position == 0)
return "Home";
else if(position == 1)
return "Buddies";
else if(position == 2)
return "History ";
else
return "Notifications";
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
HomeFragment home = new HomeFragment();
return home;
case 1:
return new BuddiesFragment();
case 2:
return new HistoryFragment();
case 3:
return new NotificationsFragment();
}
return null;
}
@Override
public int getCount() {
return 4;
}
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过这种方法,但不起作用
@Override public int getPageIconResId(int position){return icons [position]; }
@Override
public boolean isViewFromObject(View view, Object o) {
return o == view;
}
Run Code Online (Sandbox Code Playgroud)
我使用矢量绘图作为我的选项卡图像,这只适用于 API >21。但我确信您可以以同样的方式使用图像可绘制对象。
这是我的代码:
class MyPagerAdapter extends FragmentPagerAdapter {
private String[] tabText = getResources().getStringArray(R.array.tabs);
public MyPagerAdapter(FragmentManager fm) {
super(fm);
tabText = getResources().getStringArray(R.array.tabs);
}
@Override
public Fragment getItem(int position) {
Fragment fragment=null;
if (position == 0)
fragment = new FragmentA();
if (position == 1)
fragment = new FragmentB();
if (position == 2)
fragment=new FragmentC();
return fragment;
}
@Override
public CharSequence getPageTitle(int position) {
SpannableString spannableString = null;
if (position == 0) {
//use the MrVector library to inflate vector drawable inside tab
Drawable drawable = MrVector.inflate(getResources(), R.drawable.vector_add);
//set the size of drawable to 36 pixels
drawable.setBounds(0, 0, 36, 36);
ImageSpan imageSpan = new ImageSpan(drawable);
//to make our tabs icon only, set the Text as blank string with white space
spannableString = new SpannableString(" ");
spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (position == 1) {
//use the MrVector library to inflate vector drawable inside tab
Drawable drawable = MrVector.inflate(getResources(), R.drawable.vector_list);
//set the size of drawable to 36 pixels
drawable.setBounds(0, 0, 36, 36);
ImageSpan imageSpan = new ImageSpan(drawable);
//to make our tabs icon only, set the Text as blank string with white space
spannableString = new SpannableString(" ");
spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (position == 2) {
//use the MrVector library to inflate vector drawable inside tab
Drawable drawable = MrVector.inflate(getResources(), R.drawable.vector_settings);
//set the size of drawable to 36 pixels
drawable.setBounds(0, 0, 36, 36);
ImageSpan imageSpan = new ImageSpan(drawable);
//to make our tabs icon only, set the Text as blank string with white space
spannableString = new SpannableString(" ");
spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return spannableString;
}
@Override
public int getCount() {
return 3;
}
Run Code Online (Sandbox Code Playgroud)
有图片:
@Override
public CharSequence getPageTitle(int position) {
SpannableStringBuilder sb = new SpannableStringBuilder(" ");
if (position == 0) {
Drawable drawable = getDrawable(R.drawable.ic_action_add);
drawable.setBounds(0, 0, 48, 48);
ImageSpan imageSpan = new ImageSpan(drawable);
//to make our tabs icon only, set the Text as blank string with white space
sb.setSpan(imageSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
if (position == 1) {
Drawable drawable = getDrawable(R.drawable.ic_action_list_2);
drawable.setBounds(0, 0, 48, 48);
ImageSpan imageSpan = new ImageSpan(drawable);
//to make our tabs icon only, set the Text as blank string with white space
sb.setSpan(imageSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return sb;
}
Run Code Online (Sandbox Code Playgroud)
MrVector 图书馆:https://github.com/telly/MrVector
我用来将 SVG 转换为 VectorDrawable 的工具:http://inloop.github.io/svg2android/
| 归档时间: |
|
| 查看次数: |
3153 次 |
| 最近记录: |