Почему значки не отображаются при навигации по вкладкам?
Когда я перемещаюсь с первой на вторую на третью вкладку, значок меняется нормально, но селектор все еще только на второй>, я хочу переместить значок на вкладку. сначала селектор, а также остальные
я использую этот код
public class ElectronicServiceActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
ImageView backimage;
Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_electronic_service);
backimage = (ImageView) findViewById(R.id.back_id);
backimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mContext=ElectronicServiceActivity.this;
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setBackgroundResource(R.drawable.food_tab_selector);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int postion = tab.getPosition();
if (postion == 0) {
tabLayout.setBackgroundResource(R.drawable.equipment_tab_selector);
} else if (postion == 1) {
tabLayout.setBackgroundResource(R.drawable.drugs_tab_selector);
} else if (postion == 2) {
tabLayout.setBackgroundResource(R.drawable.search_food_selector);
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
private void setupViewPager(ViewPager viewPager) {
ElectronicServiceDrugs electronicServiceDrugs = new ElectronicServiceDrugs();
ElectronicServiceEquipment electronicServiceEquipment = new ElectronicServiceEquipment();
ElectronicServiceFood electronicServiceFood = new ElectronicServiceFood();
ElectronicServiceActivity.ViewPagerAdapter adapter = new ElectronicServiceActivity.ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(electronicServiceEquipment, "خدمات الاجهزه الطبيه");
adapter.addFragment(electronicServiceDrugs, "خدمات دوائيه");
adapter.addFragment(electronicServiceFood, "خدمات غذائيه");
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(2);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
я хочу переместить каждый значок на его вкладку, когда заголовок фокусируется на значке.
проверьте фотографии
1 ответ
Вместо того, чтобы устанавливать фон на самом макете вкладки, вы можете установить значок на элементах макета вкладки:
if (position == 0)
mTabLayout.getTabAt(0).setIcon(R.drawable.your_icon);