我正在用一个非常简单的导航栏创建一个应用程序,其中显示两个项目: home和starred:
@Composable
fun HomeScreen(modifier: Modifier) {
var selectedItem by remember { mutableStateOf(0) }
val items = listOf(
stringResource(id = R.string.bottomNavigationMenu_home),
stringResource(id = R.string.bottomNavigationMenu_starred)
)
val icons = listOf(
Icons.Outlined.Home,
Icons.Outlined.Star,
)
Box(
modifier = modifier
) {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Bottom
) {
NewProjectButton(
modifier = Modifier
.padding(16.dp)
.align(Alignment.End)
)
NavigationBar {
items.forEachIndexed { index, item ->
NavigationBarItem(
icon = {
Icon(icons[index], contentDescription = item) },
label = {
Text(item)
},
selected = selectedItem == index,
onClick = { selectedItem = index }
)
}
}
}
}
}输出看起来是这样的(我必须嵌入链接,因为当我尝试做其他操作时,StackOverflow会给我一个错误):
https://i.imgur.com/HYo6ETs.png
正如你可能从图像中看到的那样,恒星不是被勾画出来的,而是被填充的。我想知道这是可修复的,还是内部的错误。
编辑1
这似乎是一个内部的错误在撰写,无论它是否已经固定在一个更新的版本,我不知道,但我正在使用的最新版本候选,所以这是不可能的。我在这里向Google提交了一个问题请求:https://issuetracker.google.com/u/1/issues/253388323
发布于 2022-10-13 04:29:48
我认为星型轮廓形状在材料标准图标上不可用,但您可以选择使用扩展图标库androidx.compose.material:material-icons-extended依赖项,其中包含完整的材料图标集。
但是,由于这个库的规模很大,所以不鼓励这样做。这使您可以选择使用Android的导入向量资产。功能。
为此,您可以按照以下步骤右键单击可绘制文件夹 -> New -> -> 选择剪辑艺术按钮-> -> 单击剪辑艺术按钮E 211 ->搜索搜索框-> E 112NextE 213-><代码>E 114FinishE 215。按照相同的步骤为主页图标导入另一个向量。
此后,您可以创建一个painterResource列表,如下所示。
val icons = listOf(
painterResource(id = R.drawable.ic_outline_star),
painterResource(id = R.drawable.ic_empty_home)
)之后,可以对索引处的图标使用相同的代码。
发布于 2022-10-13 04:23:44
这不是窃听器。星图的概述版本也是填充的,您可以使用Icons.Outlined.StarRate。
我试着上传显示星星,但目前服务器出现了堆栈溢出错误。
您可以通过选择File>New>Vector Asset并键入star并选择大纲以查看每个版本来进行签出。
https://stackoverflow.com/questions/74050270
复制相似问题