【发布时间】:2022-08-07 20:07:15
【问题描述】:
现在,开始屏幕是\"相机屏幕\"(在索引 0 处)
我想将开始屏幕设置为 \"聊天画面\" (即索引 1 而不是 0)
即:当用户打开应用程序时,\"聊天画面\" 是活动屏幕,而不是\"相机屏幕\"-- 就像在 WhatsApp 上一样
private val tabs = listOf(
TabItem.Camera,
TabItem.Chat,
TabItem.Status,
TabItem.Call
)
@Composable
fun TabLayout(
modifier: Modifier = Modifier,
tabs: List<TabItem>,
selectedIndex: Int = 1,
onPageSelected: ((tabItem: TabItem) -> Unit)
) {
TabRow(
selectedTabIndex = selectedIndex,
divider = { }
) {
tabs.forEachIndexed{index, tabItem ->
Tab(
selected = index == selectedIndex,
modifier = modifier.background(MaterialTheme.colors.primary),
onClick = {
onPageSelected(tabItem)
},
text =
{
if (tabItem == TabItem.Camera) {
Icon(painter = painterResource(id = R.drawable.ic_camera), stringResource(id = R.string.icon)).toString()
}
else {
Text(
text = stringResource(id = tabItem.title).uppercase(Locale.ROOT),
style = MaterialTheme.typography.caption,
)
}
},
)
}
}
}
用法
val pagerState = rememberPagerState()
//tab layout
TabLayout(tabs = tabs, selectedIndex = pagerState.currentPage ,
onPageSelected = { tabItem->
coroutineScope.launch {
pagerState.animateScrollToPage(tabItem.index)
}
})
-
如果您转到另一个选项卡,所选选项卡(选项卡下的行)是否会更改?
-
是的,它改变了
-
您传递寻呼机当前页面。你检查它是否是1?
-
它从 0 @Marat 开始
标签: android kotlin tabs android-jetpack-compose