Почему значки не отображаются при навигации по вкладкам?

Когда я перемещаюсь с первой на вторую на третью вкладку, значок меняется нормально, но селектор все еще только на второй>, я хочу переместить значок на вкладку. сначала селектор, а также остальные

я использую этот код

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);
Другие вопросы по тегам