Forráskód Böngészése

Mimic M3 rounded tab indicators

arkon 2 éve
szülő
commit
0c9c4c0347

+ 12 - 0
app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt

@@ -3,9 +3,12 @@ package eu.kanade.presentation.library.components
 import androidx.compose.foundation.isSystemInDarkTheme
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.ScrollableTabRow
 import androidx.compose.material3.Tab
+import androidx.compose.material3.TabRowDefaults
+import androidx.compose.material3.TabRowDefaults.tabIndicatorOffset
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.State
@@ -14,6 +17,8 @@ import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
 import com.google.accompanist.pager.PagerState
@@ -40,6 +45,13 @@ fun LibraryTabs(
         ScrollableTabRow(
             selectedTabIndex = state.currentPage,
             edgePadding = 0.dp,
+            indicator = { tabPositions ->
+                TabRowDefaults.Indicator(
+                    Modifier
+                        .tabIndicatorOffset(tabPositions[state.currentPage])
+                        .clip(RoundedCornerShape(topStart = 3.dp, topEnd = 3.dp)),
+                )
+            },
         ) {
             categories.forEachIndexed { index, category ->
                 val count by if (showMangaCount) {