setupViewPager не вызывает fargement в android, используя tablayout для вкладок - PullRequest
0 голосов
/ 12 февраля 2020

Привет в приведенном ниже сценарии с использованием tablayout для отображения вкладок. Количество вкладок равно 2. Теперь клик на данных tab1 идет правильно, и контент также отображается правильно.

При переходе на Tab2, если нажать на данные Tab2 загружается правильно, но индикатор выбранной вкладки отображался в Tab1, но это должно происходить в Tab2

Tab1. java:

// Get the ViewPager and set it's PagerAdapter so that it can display items
        viewPager = (ViewPager) rootView.findViewById(R.id.viewpager);

        setupViewPager(viewPager);
        // Give the TabLayout the ViewPager
        final TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.sliding_tabs);
        tabLayout.setupWithViewPager(viewPager);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {

            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
               // TabHost tabHost=null;
                //setTabColor(tabHost);

                if (tab.getPosition()==0) {
                    fetchJSONForSales();

                } else  if (tab.getPosition()==1) {
                    tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#FF0000"));
                    fragment =new SupportFragment();
                    loadFragment(fragment);
                }
            }


            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {
               // fetchJSONForSales();
            }
        });
        return rootView;


    }


    private void setupViewPager(ViewPager viewPager) {
       ViewPagerAdapter adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
        adapter.addFragment(new SalesStageFragment(), "Sales Stage");
        adapter.addFragment(new SupportFragment(), "Support Required");
        viewPager.setAdapter(adapter);
    }

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

Tab2. java:

 viewPager = (ViewPager) rootView.findViewById(R.id.viewpager);

        setupViewPager(viewPager);
        // Give the TabLayout the ViewPager
        final TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.sliding_tabs);
        tabLayout.setupWithViewPager(viewPager);

private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
        adapter.addFragment(new SalesStageFragment(), "Sales Stage");
        adapter.addFragment(new SupportFragment(), "Support Required");
        viewPager.setAdapter(adapter);
    }

    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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...