Вкладки в Android исчезают.Код работал раньше, но теперь он перестал работать - PullRequest
0 голосов
/ 21 декабря 2018

Я использовал Tab Control и RecyclerView вместе в Android.То, как это работает, у меня есть SearchBar в toolbar.Когда пользователь вводит поисковый запрос в строку поиска.При нажатии на кнопку поиска, tab's Фрагменты должны быть загружены данными.Проблемы заключаются в следующем.

1) Значок вкладок исчезает

2) При отладке с помощью найденного кода (поскольку я использую ViewPager с компоновкой вкладок для реализации вкладок в Android), метод getItem из PagerAdapterКласс вызывается дважды каждый раз, когда срабатывает getItem.

Я застрял и не знаю, что делать.Не сильно помогает и онлайн.

1) Код инициализации вкладки: -

 private TabLayout tabLayout;

 @Override
 protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        tabLayout = (TabLayout)findViewById(R.id.tablayout);

 tabLayout.addTab(tabLayout.newTab().setIcon(R.mipmap.craigslist_new1));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.mipmap.kijiji_new1));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.mipmap.letgo_new1));        
 tabLayout.addTab(tabLayout.newTab().setIcon(R.mipmap.varagesale_new1));        
 tabLayout.addTab(tabLayout.newTab().setIcon(R.mipmap.facebook_new1));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    drawerLayout = findViewById(R.id.drawer_layout);

}


 @Override
 public boolean onQueryTextSubmit(String query) {

    //loadRecyclerViewData(query);

    Bundle bundle = new Bundle();
    bundle.putString("searchText", query);

        final ViewPager viewPager = (ViewPager)findViewById(R.id.pager);
        final PageAdapter adapter = new PageAdapter(getSupportFragmentManager(), tabLayout.getTabCount(), bundle);
        viewPager.setAdapter(adapter);

    viewPager.setOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.setupWithViewPager(viewPager);
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());

        }

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

        }

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

        }
    });

    return true;
}

2) PagerAdapter: -

 public class PageAdapter extends FragmentStatePagerAdapter {

      int mNoofTabs;
      Bundle bundle;

      public PageAdapter(FragmentManager fragmentManager, int NumberOfTabs, Bundle bundle)
        {
        super(fragmentManager);
        this.mNoofTabs = NumberOfTabs;
        this.bundle = bundle;

    }
     @Override
     public Fragment getItem(int i) {
        switch(i)
         {
            case 0 :
                CraigslistFragment tab1 = new CraigslistFragment();
                tab1.setArguments(bundle);
                return tab1;
            case 1:
                KijijiFragment tab2 = new KijijiFragment();
                tab2.setArguments(bundle);
                return tab2;
            case 2:
                letgoFragment tab3 = new letgoFragment();
                tab3.setArguments(bundle);
                return tab3;
            case 3:
                VaragesaleFragment tab4 = new VaragesaleFragment();
                tab4.setArguments(bundle);
                return tab4;
            case 4:
                FacebookFragment tab5 = new FacebookFragment();
                tab5.setArguments(bundle);
                return tab5;

            default:
                return null;
        }

     }

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