gpt4 book ai didi

android - TopAppBar 无法在 Compose 中自动调整高度,TabRow 无法正常工作

转载 作者:行者123 更新时间:2023-12-04 14:55:52 37 4
gpt4 key购买 nike

基本上,我有两个可组合函数,它们创建一个 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 似乎不会自动调整其高度,因为选项卡名称和图标都被裁剪了:

最佳答案

TopAppBar 实现了 Material design specs并具有固定高度 56.dp

您可以使用:

Column(Modifier.fillMaxWidth()) {
TopAppBar(
title = {
Column() {
Row { Text("Title") }
}
},
backgroundColor = MaterialTheme.colors.primary,
contentColor = Color.White
)
TabLayout()
}

然后在您的 TabLayout 中使用:

       Tab(
selected = selectedTab == 0,
onClick = { selectedTab = 0 },
//.....
)
Tab(
selected = selectedTab == 1,
onClick = { selectedTab = 1 },
//.....
)

enter image description here

关于android - TopAppBar 无法在 Compose 中自动调整高度,TabRow 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68025314/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com