最近発表されたAdapterList
コンポーネントで動的データを使用して作業を整理しようとしました。テストとして、データ リストを親コンポーネントの状態に配置し、クリックするたびに初期リストの長さを 1 つずつ減らすボタンを追加しました。
val (data, setData) = state { testFilms }
Column {
Button(onClick = {
setData(testFilms.dropLast(1))
}) {
Text("Change")
}
AdapterList(
data,
modifier = LayoutPadding(5.dp) + LayoutHeight.Fill + LayoutWidth.Fill
) { film ->
FilmItemView(
film = film,
selectFilmAction = selectFilmAction,
logger = logger
)
}
}
しかし、期待される結果ではなく、再構成時に次のエラーが発生しましたAdapterList
。
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.get(ArrayList.java:437)
at androidx.ui.foundation.ListState$composeChildForDataIndex$3$1.invoke(AdapterList.kt:448)
at androidx.ui.foundation.ListState$composeChildForDataIndex$3$1.invoke(Unknown Source:0)
at androidx.compose.ObserveKt.Observe(Observe.kt:37)
at androidx.ui.foundation.ListState$composeChildForDataIndex$3.invoke(Unknown Source:11)
at androidx.ui.foundation.ListState$composeChildForDataIndex$3.invoke(Unknown Source:0)
at androidx.compose.Recomposer$recompose$1.invoke(Recomposer.kt:61)
at androidx.compose.Recomposer$recompose$1.invoke(Recomposer.kt:19)
at androidx.compose.ViewComposerKt.runWithCurrent(ViewComposer.kt:387)
at androidx.compose.Recomposer.recompose(Recomposer.kt:51)
at androidx.compose.Recomposer.access$recompose(Recomposer.kt:19)
at androidx.compose.Recomposer$Companion.recompose$compose_runtime_release(Recomposer.kt:42)
at androidx.compose.Composition.compose(Composition.kt:67)
at androidx.compose.Composition.compose(Composition.kt:59)
at androidx.compose.Compose$subcomposeInto$1.invoke(Compose.kt:253)
at androidx.compose.Compose$subcomposeInto$1.invoke(Compose.kt:23)
at androidx.compose.ViewComposerKt.runWithComposing(ViewComposer.kt:397)
at androidx.compose.Compose.subcomposeInto(Compose.kt:252)
at androidx.ui.foundation.ListState.composeChildForDataIndex-N7Qnm20(AdapterList.kt:447)
at androidx.ui.foundation.ListState.recomposeAllChildren(AdapterList.kt:358)
at androidx.ui.foundation.ListState.recomposeIfAttached(AdapterList.kt:352)
at androidx.ui.foundation.AdapterListKt.AdapterList(AdapterList.kt:486)
at com.gitlab.andrewkuryan.lab1.view.FilmListViewKt$FilmList$1$2$invoke$1.invoke(FilmListView.kt:174)
at com.gitlab.andrewkuryan.lab1.view.FilmListViewKt$FilmList$1$2$invoke$1.invoke(Unknown Source:0)
at androidx.compose.ObserveKt.Observe(Observe.kt:37)
at com.gitlab.andrewkuryan.lab1.view.FilmListViewKt$FilmList$1$2.invoke(Unknown Source:20)
at com.gitlab.andrewkuryan.lab1.view.FilmListViewKt$FilmList$1$2.invoke(Unknown Source:3)
このコンポーネントで動的データを操作する方法を知っている人はいますか?