web-dev-qa-db-fra.com

Comment obtenir le contexte dans jetpack composer

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()
                })

        }
    }
  }
}

J'essaie de faire grinchonner de manière normale. Mais j'ai eu l'erreur que j'ai essayé beaucoup de multiples source mais j'ai échoué.

12
Mr Tayyab MuGhal

Vous pouvez accéder au contexte avec définir ambientContext.

Exemple :

val context = +ambient(ContextAmbient)
3
Raka Adi Nugroho

La façon de faire cela a été mise à jour. La neige:

val context = ContextAmbient.current

Contexambient Docs

2
Ryan M

Je pense que votre jamais montrer Toast voie normale. Jetpack compose utilise un plug-in personnalisé Kotlin compilateur pour transformer ces fonctions composables dans les éléments d'interface utilisateur de l'application. Par exemple, la fonction Text() est définie par le Compose UI library. Jetpack Compose est très tôt du développement. Vous pouvez voir tous les repo de jetpack composent avec un échantillon et une vérification de test d'intégration ci-dessous

https://androïd.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/ui

Pour jetpack composer matériau démo vérifier ce lien

https://androïd.googlesource.com/platform/frameworks/support/+/refs/heads/androix-master-dev/ui/u-material/IntegRAS-Test/Material-Demos/src/main/ Java/androidx/ui/matériau/démos

1
Anas Mehar

Pour obtenir le contexte à Jetpack composer:

val context = ContextAmbient.current

Travailler sur 0.1.0-Dev14

Comment l'utiliser dans [~ # ~] toast [~ # ~ ~]:

@Composable
fun cardViewImplementer(item: Int) {
   val context = ContextAmbient.current
   Card(
     shape = RoundedCornerShape(10.dp),
     modifier = Modifier.padding(10.dp)
   ) {
     Box(
        modifier = Modifier
            .fillMaxWidth()
            .drawShadow(5.dp)
            .clickable(onClick = {
                Toast.makeText(context, "Clicked $item", Toast.LENGTH_SHORT).show()
            }), children = {

        })
}

Pour accéder à ressource:

Text("Read this string: "+context.getString(R.string.name))
0
Ali Azaz Alam