Как удалить компонент просмотра по клику с помощью Jetpack Comose - PullRequest
0 голосов
/ 26 октября 2019

У меня есть такой экранный код (показывает простой список).

Я ищу, чтобы удалить элемент при нажатии.

Как мне этого добиться?

HorizontalScroller {
    Row(modifier = Spacing(bottom = 16.dp, right = 16.dp)) {
        posts.forEach { post ->
            WidthSpacer(16.dp)
            Clickable(onClick = {
               // Delete the PostCardPopular I just added if it was clicked
            }) {
               PostCardPopular(post)
            }
        }
    }
 }

1 Ответ

3 голосов
/ 26 октября 2019

вы можете достичь этого, используя объект Object и ModelList

@Model
object YourModel {
  val posts = ModelList<Post>()
}

.
.
.

HorizontalScroller {
    Row(modifier = Spacing(bottom = 16.dp, right = 16.dp)) {
        for(post in YourModel.posts)
            WidthSpacer(16.dp)
            Clickable(onClick = {
               YourModel.posts.remove(post)
            }) {
               PostCardPopular(post)
            }
        }
    }
 }

При удалении из ModelList пользовательский интерфейс будет перекомпоновывать.

Дополнительно: Google выпускает кодовую метку для базовой композиции. https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/

...