Rey*_*ohn 10 android android-jetpack-compose
我想自定义 jetpack compose 中选项卡的外观,这是我的选项卡现在的样子:
但我想像这样查看我的选项卡:
我正在这样创建选项卡
TabRow(
selectedTabIndex = pagerState.currentPage,
backgroundColor = MaterialTheme.colors.primary,
contentColor = Color.White
) {
filters.forEachIndexed { index, filter ->
Tab(
text = {
Text(
text = filter.name.replaceFirstChar {
if (it.isLowerCase()) {
it.titlecase(Locale.getDefault())
} else {
it.toString()
}
}
)
},
selected = pagerState.currentPage == index,
onClick = { scope.launch { pagerState.animateScrollToPage(index) } },
)
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这种外观,我已经搜索了很多,但没有找到任何线索,有人可以帮忙吗?
Thr*_*ian 26
@Composable
fun CustomTabs() {
var selectedIndex by remember { mutableStateOf(0) }
val list = listOf("Active", "Completed")
TabRow(selectedTabIndex = selectedIndex,
backgroundColor = Color(0xff1E76DA),
modifier = Modifier
.padding(vertical = 4.dp, horizontal = 8.dp)
.clip(RoundedCornerShape(50))
.padding(1.dp),
indicator = { tabPositions: List<TabPosition> ->
Box {}
}
) {
list.forEachIndexed { index, text ->
val selected = selectedIndex == index
Tab(
modifier = if (selected) Modifier
.clip(RoundedCornerShape(50))
.background(
Color.White
)
else Modifier
.clip(RoundedCornerShape(50))
.background(
Color(
0xff1E76DA
)
),
selected = selected,
onClick = { selectedIndex = index },
text = { Text(text = text, color = Color(0xff6FAAEE)) }
)
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果如gif所示。
如果您希望有一个带有阴影和颜色混合或流体颜色变化的选项卡,如这个 gif 所示
参考这个答案
| 归档时间: |
|
| 查看次数: |
11388 次 |
| 最近记录: |