Android - ViewPager2 y TabLayout demasiado lento, como solucionarlor

 
Vista:
sin imagen de perfil
Val: 14
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

ViewPager2 y TabLayout demasiado lento, como solucionarlor

Publicado por SoCu (9 intervenciones) el 22/05/2022 15:33:34
Hola agradecería vuestra ayudada para resolver este problema que no entiendo porque esta pasando esto.....

Tengo ViewPager2 con TabLayout, para crear un menú horizontal, con un total de 12 pestañas, si deslizo el dedo por la pantalla para ir mostrando pestaña por pestaña, la vista de los fragment se muestra en un tiempo razonable, pero si en lugar de ir deslizando el dedo, estando el la pestaña 1 selecciono la pestaña 10, pasan 8 segundos interminables hasta que se muestra, bueno da igual que sea la pestaña 10 como la 3

En el Logcat, he visto este tipo de mensaje:`

WARNING: tile memory limits exceeded, some content may not draw

Este es el código que tengo en MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
mAdapter = new ViewPagerAdapter(getSupportFragmentManager(), getLifecycle());
 
 mAdapter.addFragment(new menu1());
 mAdapter.addFragment(new menu2());
 mAdapter.addFragment(new menu3());
 mAdapter.addFragment(new menu4());
 mAdapter.addFragment(new menu5());
 mAdapter.addFragment(new menu6());
 mAdapter.addFragment(new menu7());
 mAdapter.addFragment(new menu8());
 mAdapter.addFragment(new menu9());
 mAdapter.addFragment(new menu10());
 mAdapter.addFragment(new menu11());
 mAdapter.addFragment(new menu12());
 
 binding.viewPager2.setAdapter(mAdapter);
 
 binding.viewPager2.setOffscreenPageLimit(12-1);
 
 binding.viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback(){
     @Override
     public void onPageSelected(int position) {
         binding.tabs.selectTab(binding.tabs.getTabAt(position));
     }
 });
 
 binding.tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
     @Override
     public void onTabSelected(TabLayout.Tab tab) {
         binding.viewPager2.setCurrentItem(tab.getPosition());
     }
     @Override
     public void onTabUnselected(TabLayout.Tab tab) {
     }
     @Override
     public void onTabReselected(TabLayout.Tab tab) {
 
     }
 });

activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<RelativeLayout
     ....
     .... >
 
     <com.google.android.material.appbar.AppBarLayout
         android:id="@+id/appBar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
         <com.google.android.material.appbar.MaterialToolbar
             android:id="@+id/myToolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
             app:layout_scrollFlags="scroll|enterAlways" />
 
         <com.google.android.material.tabs.TabLayout
             android:id="@+id/tabs"
             android:layout_width="match_parent"
             android:layout_height="90dp"
             android:background="@color/colorPrimary"
             app:tabGravity="fill"
             app:tabIconTint="@drawable/color_icono_selector"
             app:tabIndicatorColor="#FA0707"
             app:tabIndicatorFullWidth="false"
             app:tabIndicatorHeight="6dp"
             app:tabMode="scrollable"
             app:tabSelectedTextColor="#FA0707"
             app:tabTextAppearance="@style/CustomTextAppearanceTab"
             app:tabTextColor="#FFFFFF"
             app:titleTextColor="#FFFFFF">
 
             <com.google.android.material.tabs.TabItem
                 .....
                 ..... />
 
             <com.google.android.material.tabs.TabItem
                 .....
                 ..... />
 
             <com.google.android.material.tabs.TabItem
                 .....
                 ..... />
 
         </com.google.android.material.tabs.TabLayout>
 
         <androidx.viewpager2.widget.ViewPager2
             android:id="@+id/viewPager2"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             app:layout_behavior="@string/appbar_scrolling_view_behavior" />
 
     </com.google.android.material.appbar.AppBarLayout>
 
 </RelativeLayout>

He cambiado el valor de binding.viewPager2.setOffscreenPageLimit(12-1) con diferente valores, pero sigue igual de lento al mostrar los diferentes menús
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder