问题
fun createListItem(itemIndex: Int) {
Padding(left = 8.dp, right = 8.dp, top = 8.dp, bottom = 8.dp) {
FlexRow(crossAxisAlignment = CrossAxisAlignment.Center) {
expanded(1.0f) {
Text("Item $itemIndex")
}
inflexible {
Button(
"Button $itemIndex",
style = ContainedButtonStyle(),
onClick = {
Toast.makeText(
this@MainActivity,
"Item name $itemIndex",
Toast.LENGTH_SHORT
).show()
})
}
}
}
}
I try to make Toast in a normal way. but I got the error I tried a lot of multiples source but failed.
回答1:
You can access to context with define ambientContext
.
Example:
val context = +ambient(ContextAmbient)
回答2:
I think your never show Toast
normal way. Jetpack Compose uses a custom Kotlin
compiler plugin to transform these composable functions into the app's UI elements. For example, the Text()
function is defined by the Compose UI library
. Jetpack Compose is in very early stages of development. You can see all repo of Jetpack compose with sample and integrations test check below link
https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/ui
For jetpack compose material demo check this link
https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/ui/ui-material/integration-tests/material-demos/src/main/java/androidx/ui/material/demos
回答3:
The way to do this has been updated. It's now:
val context = ContextAmbient.current
ContextAmbient docs
来源:https://stackoverflow.com/questions/58743541/how-to-get-current-state-or-context-in-jetpack-compose