默认情况下,所选选项卡下划线颜色为白色,但我想使用“indicatorColor”更改为黑色
但是在材质3中indicatorColor已经存在了还有其他方法吗
尝试将所选选项卡的下划线颜色更改为黑色
在Material 3中,Tab Row具有以下签名
@Composable
fun TabRow(
selectedTabIndex: Int,
modifier: Modifier = Modifier,
containerColor: Color = TabRowDefaults.containerColor,
contentColor: Color = TabRowDefaults.contentColor,
indicator: @Composable (tabPositions: List<TabPosition>) -> Unit = @Composable { tabPositions ->
if (selectedTabIndex < tabPositions.size) {
TabRowDefaults.SecondaryIndicator(
Modifier.tabIndicatorOffset(tabPositions[selectedTabIndex])
)
}
},
divider: @Composable () -> Unit = @Composable {
Divider()
},
tabs: @Composable () -> Unit
)
在 TabRowDefaults 的 secondaryIndicator 方法中,您可以在此处将所需的颜色作为参数传递。 我所做的是,我复制了这个可组合项,它在方法签名中作为默认值传递,添加了我自己的自定义颜色。
TabRow(modifier = Modifier.padding(paddingValues), selectedTabIndex = selectedIndex,
indicator = {
tabPositions ->
if (selectedIndex < tabPositions.size) {
TabRowDefaults.SecondaryIndicator(
Modifier.tabIndicatorOffset(tabPositions[selectedIndex]),
color = colorResource(id = R.color.black)
)
}
})
如果您多次使用 TabRow,那么您可以将 TabRow 包装在您自己的自定义可组合项中,该可组合项接受颜色作为其参数之一。