我有以下
<string name="loading_listing">Loading listings %d</string>
<plurals name="loading_listing">
<item quantity="one">Found %d listing</item>
<item quantity="other">Found %d listings</item>
</plurals>
如果我使用 string
,如下所示都可以
Text(text = stringResource(R.string.loading_listing, 1))
但是如果我使用 plurals
,
Text(text = stringResource(R.plurals.loading_listing, 1))
它会崩溃
android.content.res.Resources$NotFoundException: String resource ID #0x7f0d0003
at android.content.res.Resources.getText(Resources.java:444)
at android.content.res.Resources.getString(Resources.java:537)
at android.content.res.Resources.getString(Resources.java:561)
at androidx.compose.ui.res.StringResources_androidKt.stringResource(StringResources.android.kt:48)
我认为我不能使用 stringResource(...)
。那是什么?
答案 0 :(得分:1)
1.0.0-beta04
没有获取复数资源的函数。
它不是那么优雅,但您可以使用以下内容:
Text(text = LocalContext.current.resources.getQuantityString(R.plurals.loading_listing,0,10))
答案 1 :(得分:0)
同时它在 Compose 库中不可用,您可以为此创建一个辅助函数...
@Composable
fun pluralResource(
@PluralsRes resId: Int,
quantity: Int,
vararg formatArgs: Any? = emptyArray()
): String {
return LocalContext.current.resources
.getQuantityString(resId, quantity, *formatArgs)
}