Mahmoud Belal
Mahmoud Belal

Reputation: 103

why icons not displayed when i navigate with Tabs?

when i move from first to second to third tabs the icon changed ok but the selector still at the second only > i want to move the icon to the tab of it . first has the selector on it and also the others enter image description here

enter image description here

enter image description here

i use this code

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);
        }
    }

}

i want to move every icon to it`s tab when the header focus on .the icon also diplayed on

check the photos

Upvotes: 0

Views: 31

Answers (1)

checkmate711
checkmate711

Reputation: 3461

Instead of setting the background on the tab layout itself, you may want to set the icon on the tab layout items:

if (position == 0)
  mTabLayout.getTabAt(0).setIcon(R.drawable.your_icon);

Upvotes: 1

Related Questions