返回

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
          }
        )
       }
     }
    }

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像