Ely*_*lye 21 android android-jetpack-compose
我有以下内容
<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>
Run Code Online (Sandbox Code Playgroud)
如果我使用string,如下所示,一切都可以
Text(text = stringResource(R.string.loading_listing, 1))
Run Code Online (Sandbox Code Playgroud)
但如果我使用plurals,
Text(text = stringResource(R.plurals.loading_listing, 1))
Run Code Online (Sandbox Code Playgroud)
它会崩溃
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)
Run Code Online (Sandbox Code Playgroud)
我认为这不是stringResource(...)我可以使用的。之后怎么样了?
ngl*_*ber 27
撰写1.2
从 Jetpack Compose 1.2 开始,有一个pluralStringResource函数。
pluralStringResource(id = R.plurals.loading_listing, count = 1)
Run Code Online (Sandbox Code Playgroud)
该版本是实验性API,需要添加注解@ExperimentalComposeUiApi。
1.2 之前的答案
同时它在 Compose 库中不可用,您可以为此创建一个辅助函数......
pluralStringResource(id = R.plurals.loading_listing, count = 1)
Run Code Online (Sandbox Code Playgroud)
从 Compose 1.2 开始,您可以使用该pluralStringResource函数。
pluralStringResource(R.plurals.plurals_array, 1)
Run Code Online (Sandbox Code Playgroud)
没有1.1.x获取复数资源的功能。
你可以使用类似的东西:
val resources = LocalContext.current.resources
Text(
text = resources.getQuantityString(
R.plurals.loading_listing, 0, 10
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6539 次 |
| 最近记录: |