|
1 | 1 | package one.mixin.android.ui.wallet.components |
2 | 2 |
|
3 | | -import androidx.compose.foundation.gestures.animateScrollBy |
4 | 3 | import androidx.compose.foundation.layout.Arrangement |
5 | 4 | import androidx.compose.foundation.layout.fillMaxWidth |
6 | 5 | import androidx.compose.foundation.layout.padding |
7 | | -import androidx.compose.foundation.lazy.LazyListItemInfo |
8 | | -import androidx.compose.foundation.lazy.LazyListState |
9 | 6 | import androidx.compose.foundation.lazy.LazyRow |
10 | 7 | import androidx.compose.foundation.lazy.itemsIndexed |
11 | | -import androidx.compose.foundation.lazy.rememberLazyListState |
12 | 8 | import androidx.compose.runtime.Composable |
13 | | -import androidx.compose.runtime.LaunchedEffect |
14 | | -import androidx.compose.runtime.withFrameNanos |
15 | 9 | import androidx.compose.ui.Modifier |
16 | 10 | import androidx.compose.ui.res.stringResource |
17 | 11 | import androidx.compose.ui.unit.dp |
@@ -71,27 +65,7 @@ private fun WalletCategoryTabRow( |
71 | 65 | selectedIndex: Int, |
72 | 66 | onTabSelected: (Int) -> Unit |
73 | 67 | ) { |
74 | | - val listState: LazyListState = rememberLazyListState() |
75 | | - LaunchedEffect(selectedIndex, tabs.size) { |
76 | | - if (tabs.isEmpty()) return@LaunchedEffect |
77 | | - listState.animateScrollToItem(index = selectedIndex) |
78 | | - val delta: Float? = withFrameNanos { _: Long -> |
79 | | - val itemInfo: LazyListItemInfo? = listState.layoutInfo.visibleItemsInfo |
80 | | - .firstOrNull { info: LazyListItemInfo -> info.index == selectedIndex } |
81 | | - if (itemInfo == null) return@withFrameNanos null |
82 | | - val viewportStartOffset: Int = listState.layoutInfo.viewportStartOffset |
83 | | - val viewportEndOffset: Int = listState.layoutInfo.viewportEndOffset |
84 | | - val viewportWidth: Int = viewportEndOffset - viewportStartOffset |
85 | | - val viewportCenter: Int = viewportStartOffset + (viewportWidth / 2) |
86 | | - val itemCenter: Int = itemInfo.offset + (itemInfo.size / 2) |
87 | | - (itemCenter - viewportCenter).toFloat() |
88 | | - } |
89 | | - if (delta != null && delta != 0f) { |
90 | | - listState.animateScrollBy(delta) |
91 | | - } |
92 | | - } |
93 | 68 | LazyRow( |
94 | | - state = listState, |
95 | 69 | modifier = Modifier |
96 | 70 | .fillMaxWidth() |
97 | 71 | .padding(vertical = 4.dp), |
|
0 commit comments