ui(android): LazyColumn stable keys for in-place output picker row continuity
android / Build + lint + test (push) Failing after 1m21s
android / Build + lint + test (push) Failing after 1m21s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+17
-6
@@ -4,8 +4,11 @@ import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.heightIn
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
@@ -69,12 +72,19 @@ fun OutputPickerSheet(
|
||||
color = MaterialTheme.colorScheme.onSurface,
|
||||
modifier = Modifier.padding(vertical = 8.dp),
|
||||
)
|
||||
snapshot.available.forEach { route ->
|
||||
RouteRow(
|
||||
route = route,
|
||||
isSelected = route.id == snapshot.current.id,
|
||||
onClick = { onRouteSelected(route) },
|
||||
)
|
||||
LazyColumn(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.heightIn(max = ROUTE_LIST_MAX_HEIGHT_DP.dp),
|
||||
verticalArrangement = Arrangement.spacedBy(4.dp),
|
||||
) {
|
||||
items(items = snapshot.available, key = { it.id }) { route ->
|
||||
RouteRow(
|
||||
route = route,
|
||||
isSelected = route.id == snapshot.current.id,
|
||||
onClick = { onRouteSelected(route) },
|
||||
)
|
||||
}
|
||||
}
|
||||
if (permissionDenied) {
|
||||
PermissionHintRow()
|
||||
@@ -198,3 +208,4 @@ private fun defaultSubtitle(route: OutputRoute): String = when (route.kind) {
|
||||
|
||||
private const val ROW_ICON_DP = 24
|
||||
private const val HINT_ICON_DP = 20
|
||||
private const val ROUTE_LIST_MAX_HEIGHT_DP = 400
|
||||
|
||||
Reference in New Issue
Block a user