Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Hi. Thanks for reporting this. Fixed in alpha-04
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug: b/264018028
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
https://android-review.googlesource.com/2373449
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug:
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
Description
LazyColumnFor(items) {
Text("$it", Modifier.background(Color.Red))
}
We scroll such list few pixels(no new items composed as a result)
Draw performance is: 124397 ns
Now we add a layer
LazyColumnFor(items) {
Text("$it", Modifier.drawLayer().background(Color.Red))
}
Draw performance is: 63371 ns (50% less)
Use case 2
LazyColumnFor(items) {
var color by remember { mutableStateOf(Color.Red) }
Text("$it", Modifier.clickable(indication = null) {
color = Color.Green
}.drawBehind {
drawRect(color)
})
}
Invalidating only one item:
Without layers on each item: 1137259 ns
With layers: 113771 ns (90% less).
We should have a way for a layouts to insert layers for children