Примеры из приложения JetNews содержат статические данные. Стоит отметить, что в соответствии с недавней презентацией Google (см. Особенно с 18:30), мы должны рассмотреть ScrollingList
, который предназначен для списка с неопределенным числом элементов (например, загруженного из Интернета), что традиционно обрабатывалось RecyclerView
. Тогда это должно выглядеть так:
@Composable
fun NewsFeed(stories: List<StoryData>) {
ScrollingList(stories) { story ->
StoryWidget(story)
}
}
или мы можем сделать аналогичную вещь с LiveData
или RxJava Observable
/ Flowable
:
@Composable
fun NewsFeed(stories: LiveData<List<StoryData>>) {
ScrollingList(stories.observe()) { story ->
StoryWidget(story)
}
}
В таком случаемы повторно используем StoryWidget
(или любой другой виджет по нашему выбору) на каждом шаге итерации, когда данные динамически передаются через лямбда-выражение.