Как изменить значки на выделении Android панели вкладок массив? - PullRequest
0 голосов
/ 06 января 2019

Таким образом, я строю эту панель вкладок с массивом значков, которые будут показаны, но я не могу понять, как реализовать новый значок, когда выбрана вкладка . Я сделал массив строк A, B, C, D, соответствующих изображению. Также я проверяю позицию и соответственно меняю фрагменты. Вот мой код:

public class MyAdapter extends FragmentPagerAdapter {
private Context mContext;
private String[] titles ={"A","B","C","D"};
int[] icon = new int[]{R.drawable.home_tab, R.drawable.peak_tab,R.drawable.user_tab,R.drawable.news_tab};
private int heightIcon;

public MyAdapter(FragmentManager fm, Context c){
    super(fm);
    mContext = c;
    double scale = c.getResources().getDisplayMetrics().density;
    heightIcon=(int)(30*scale+0.5f);
}
@Override
public Fragment getItem(int position) {
    Fragment frag= null;

    if(position ==0){
        frag = new FeedsFragment();
    }else if(position == 1){
        frag = new LitFragment();
    }else if(position == 2){
        frag = new ProfileFragment();
    }else if(position == 3){
        frag = new CommunityFragment();
    }

    Bundle b = new Bundle();
    b.putInt("position", position);
    frag.setArguments(b);
    return frag;

}

@Override
public int getCount() {
    return titles.length;
}

public CharSequence getPageTitle(int position){
    Drawable d = mContext.getResources().getDrawable(icon[position]);
    d.setBounds(0,0,heightIcon,heightIcon);
    ImageSpan is = new ImageSpan(d);

    SpannableString sp = new SpannableString(" ");
    sp.setSpan(is,0,sp.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    return sp;
}

}

...