Я делаю android приложение с макетом вкладок. У меня есть 3 вкладки. Прокрутка очень медленная - PullRequest
0 голосов
/ 08 апреля 2020

Я создаю android приложение с макетом вкладок. У меня есть 3 вкладки. Прокрутка между вкладками очень запаздывает. Вот класс MainActivity:

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        final ViewPager vp= findViewById(R.id.vp);
        TabLayout tbl= findViewById(R.id.tbl);
        TabItem t1= findViewById(R.id.t1);
        TabItem t2= findViewById(R.id.t2);
        TabItem t3= findViewById(R.id.t3);
        final PageAdapter pagerAdapter= new PageAdapter(getSupportFragmentManager(),tbl.getTabCount());
        vp.setOffscreenPageLimit(5);
        vp.setAdapter(pagerAdapter);

        tbl.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            public void onTabSelected(TabLayout.Tab tab) {
                vp.setCurrentItem(tab.getPosition());
                if(tab.getPosition()==0)pagerAdapter.notifyDataSetChanged();
                if(tab.getPosition()==1)pagerAdapter.notifyDataSetChanged();
                if(tab.getPosition()==2)pagerAdapter.notifyDataSetChanged();
            }
            public void onTabUnselected(TabLayout.Tab tab) { }
            public void onTabReselected(TabLayout.Tab tab) { }
        });
        vp.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tbl));
    }

Это класс PageAdapter

class PageAdapter extends FragmentPagerAdapter {
   private int noOfTabs;
   PageAdapter(FragmentManager fm,int noOfTabs){
       super(fm);
       this.noOfTabs=noOfTabs;
   }
   public Fragment getItem(int position) {
       switch (position){
           case 0:return new tab1();
           case 1:return new tab2();
           case 2:return new tab3();
           default:return null;
       }
   }
   public int getCount() { return noOfTabs; }
   public int getItemPosition(@NonNull Object object) { return POSITION_NONE; }
}

Я пытался использовать vp.setOffscreenPageLimit (3) для своего пейджера просмотра. Это не имело значения. Что мне делать ??

...