Update demo app to use a lazy list to display filter results.
Test: n/a
Change-Id: I2370a17b92ee0a497d2c3898463c0c8de0d89683
diff --git a/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoFilter.kt b/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoFilter.kt
index e883852..8081212 100644
--- a/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoFilter.kt
+++ b/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoFilter.kt
@@ -16,24 +16,20 @@
package androidx.compose.integration.demos
-import androidx.compose.foundation.ExperimentalFoundationApi
-import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.wrapContentSize
-import androidx.compose.foundation.rememberScrollState
-import androidx.compose.foundation.text.BasicTextField
-import androidx.compose.foundation.verticalScroll
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
import androidx.compose.integration.demos.common.Demo
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Close
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LocalContentColor
-import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
+import androidx.compose.material3.TextField
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarScrollBehavior
import androidx.compose.runtime.Composable
@@ -44,7 +40,6 @@
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
-import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.withStyle
@@ -58,9 +53,8 @@
val filteredDemos = launchableDemos
.filter { it.title.contains(filterText, ignoreCase = true) }
.sortedBy { it.title }
- // TODO: migrate to LazyColumn after b/175671850
- Column(Modifier.verticalScroll(rememberScrollState())) {
- filteredDemos.forEach { demo ->
+ LazyColumn {
+ items(filteredDemos) { demo ->
FilteredDemoListItem(
demo,
filterText = filterText,
@@ -99,23 +93,20 @@
}
/**
- * [BasicTextField] that edits the current [filterText], providing [onFilter] when edited.
+ * [TextField] that edits the current [filterText], providing [onFilter] when edited.
*/
@Composable
-@OptIn(ExperimentalFoundationApi::class)
+@OptIn(ExperimentalMaterial3Api::class)
private fun FilterField(
filterText: String,
onFilter: (String) -> Unit,
modifier: Modifier = Modifier
) {
val focusRequester = remember { FocusRequester() }
- // TODO: replace with Material text field when available
- BasicTextField(
+ TextField(
modifier = modifier.focusRequester(focusRequester),
value = filterText,
- onValueChange = onFilter,
- textStyle = LocalTextStyle.current,
- cursorBrush = SolidColor(LocalContentColor.current)
+ onValueChange = onFilter
)
DisposableEffect(focusRequester) {
focusRequester.requestFocus()