Как получить Текущее состояние или контекст в Jetpack Compose - PullRequest
0 голосов
/ 07 ноября 2019
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()
                })

        }
    }
  }
}

Я пытаюсь сделать тост по-нормальному. но я получил ошибку, я перепробовал многократные источники, но потерпел неудачу.

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Я думаю, что вы никогда не показываете Toast нормальный путь. Jetpack Compose использует специальный плагин компилятора Kotlin для преобразования этих компонуемых функций в элементы пользовательского интерфейса приложения. Например, функция Text() определяется Compose UI library. Jetpack Compose находится на очень ранних стадиях разработки. Вы можете увидеть все репозитории Jetpack compose с проверкой образца и тестирования интеграции ниже по ссылке

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

Для демонстрации материала Jetpack compose проверьте эту ссылку

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

0 голосов
/ 13 ноября 2019

Вы можете получить доступ к контексту с помощью определения ambientContext.

Пример:

val context = +ambient(ContextAmbient)
...