【发布时间】:2021-09-02 14:38:29
【问题描述】:
基本上,我有两个可组合的函数,它们创建一个 TopAppBar 并添加一个包含在应用栏中的选项卡布局:
@Composable
fun ZCryptAppBar(
modifier: Modifier = Modifier,
title: @Composable RowScope.() -> Unit
) {
Column(Modifier.fillMaxWidth()) {
TopAppBar(
title = {
Column {
Row { title() }
Row {
TabLayout()
}
}
},
modifier = modifier,
backgroundColor = MaterialTheme.colors.primary,
contentColor = Color.White
)
}
}
@Composable
fun TabLayout() {
var selectedTab by remember {
mutableStateOf(0)
}
TabRow(
modifier = Modifier.fillMaxWidth(),
selectedTabIndex = selectedTab,
backgroundColor = MaterialTheme.colors.primary,
tabs = {
Tab(
selected = selectedTab == 0,
onClick = { selectedTab = 0 },
text = { Text(stringResource(R.string.encrypt)) },
icon = {
Image(
painterResource(id = R.drawable.ic_padlock_black),
stringResource(R.string.descr_icon_padlock)
)
}
)
Tab(
selected = selectedTab == 0,
onClick = { selectedTab = 0 },
text = { Text(stringResource(R.string.decrypt)) },
icon = {
Image(
painterResource(id = R.drawable.ic_padunlock_black),
stringResource(R.string.descr_icon_padunlock)
)
}
)
}
)
}
但是我在这里遇到了两个问题:首先,当我点击一个标签时,什么也没有发生,并且应用程序停留在同一个标签中。
其次,TopAppBar 似乎不会自动调整其高度,因为选项卡名称和图标都被裁剪了:
【问题讨论】:
标签: android kotlin android-jetpack-compose