Milan Jurkulak 3 éve
szülő
commit
1478f164c9

+ 1 - 0
app/src/main/kotlin/org/mjdev/tvapp/base/navigation/ScreenWithPages.kt

@@ -8,6 +8,7 @@
 
 package org.mjdev.tvapp.base.navigation
 
+import androidx.compose.foundation.pager.rememberPagerState
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
 import androidx.compose.ui.res.stringResource

+ 12 - 2
app/src/main/kotlin/org/mjdev/tvapp/base/page/Pager.kt

@@ -16,6 +16,8 @@ import androidx.compose.foundation.pager.VerticalPager
 import androidx.compose.foundation.pager.rememberPagerState
 import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
@@ -59,10 +61,18 @@ fun Pager(
         initialPage = startIndex,
     )
 
+    val lastItem = remember { mutableStateOf<MenuItem?>(null) }
+
     val listener = object : MenuItemClickListener {
         override fun onMenuItemClick(item: MenuItem) {
-            coroutineScope.launch {
-                pagerState.animateScrollToPage(menuItems.indexOf(item))
+            if (lastItem.value != item) {
+                lastItem.value = item
+                val itemIndex = menuItems.indexOf(item)
+                if (pagerState.currentPage != itemIndex) {
+                    coroutineScope.launch {
+                        pagerState.animateScrollToPage(itemIndex)
+                    }
+                }
             }
         }
     }

+ 1 - 1
gradle.properties

@@ -23,4 +23,4 @@ kotlin.code.style=official
 android.nonTransitiveRClass=true
 android.defaults.buildfeatures.buildconfig=true
 android.nonFinalResIds=false
-org.gradle.unsafe.configuration-cache=true
+org.gradle.unsafe.configuration-cache=false