android compose Tab(顶部) 使用

/**
* Author : wn
* Email : maoning20080809@163.com
* Date : 2026/1/3 12:44
* Description : 使用 TabRow 和 Tab 实现切换 (顶部)
*/
class TabActivity : ComponentActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
testTab()
}
}
@Preview
@Composable
private fun testTab(){
//要添加Composable,导入:import androidx.compose.runtime.getValue 和 import androidx.compose.runtime.setValue
var selectedTabIndex by remember { mutableStateOf(0) }
val tabs = listOf("Tab 1", "Tab 2", "Tab 3")
Column(modifier = Modifier.fillMaxSize()) {
TabRow(
selectedTabIndex = selectedTabIndex,
containerColor = MaterialTheme.colorScheme.primaryContainer,
contentColor = MaterialTheme.colorScheme.primaryContainer,
) {
tabs.forEachIndexed {index, title ->
Tab(
selected = selectedTabIndex == index,
onClick = {selectedTabIndex = index},
text = {Text(text = title)},
selectedContentColor = MaterialTheme.colorScheme.primary,
unselectedContentColor = MaterialTheme.colorScheme.onSurfaceVariant
)
}
}
when(selectedTabIndex) {
0 -> tabContent1()
1 -> tabContent2()
2 -> tabContent3()
}
}
}
@Composable
private fun tabContent1(){
Text(text = "Tab 1 Content", modifier = Modifier.padding(16.dp))
}
@Composable
private fun tabContent2(){
Text(text = "Tab 2 Content", modifier = Modifier.padding(16.dp))
}
@Composable
private fun tabContent3(){
Text(text = "Tab 3 Content", modifier = Modifier.padding(16.dp))
}
}