android-如何在 jetpack compose 中使用 LazyListState 更新 TabRow 指示器?
发布时间:2022-08-03 21:54:32 279
相关标签: # java
由于公司政策,我无法显示该应用程序,但几乎我有一个惰性列表,它会在选择选项卡时设置动画,但当用户在惰性列表上滚动时,选项卡指示器也需要根据更新到用户所在的相应部分和选项卡。我让文本颜色在滚动时更新,但不确定如何更新指示器?似乎该指标仅在重组时启动。
@Composable
private fun MyTab(
tabs: List,
lazyListState: LazyListState
){
var selectedIndex by remember { mutableStateOf(0) }
val scope = rememberCoroutineScope()
TabRow(
selectedTabIndex = selectedIndex,
indicator = { tabPositions ->
TabRowDefaults.Indicator(
modifier = Modifier.tabIndicatorOffset(tabPositions[selectedIndex])
)
}
){
tabs.forEachIndexed { index, item ->
val selected = (selectedIndex == index)
Tab(
selected = selected,
onClick = {
selectedIndex = index
scope.launch{
lazyListState.animateScrollToItem(selectedIndex)
}
},
text = {
Text(color = if(lazyListState.firstVisibleItemIndex == index) white else red
}
)
}
}
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报