Fixed
Status Update
Comments
jn...@google.com <jn...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
Author: Louis Pullen-Freilich <
Link:
Adds OverscrollEffect#withoutDrawing and OverscrollEffect#withoutEventHandling
Expand for full commit details
Adds OverscrollEffect#withoutDrawing and OverscrollEffect#withoutEventHandling
These APIs allow overscroll to have events dispatched to it by one component, and rendered in a separate component.
Fixes: b/266550551
Fixes: b/204650733
Fixes: b/255554340
Fixes: b/229537244
Test: OverscrollTest
Relnote: "Adds OverscrollEffect#withoutDrawing and OverscrollEffect#withoutEventHandling APIs - these APIs create a wrapped instance of the provided overscroll effect that doesn't draw / handle events respectively, which allows for rendering overscroll in a separate component from the component that is dispatching events. For example, disabling drawing the overscroll inside a lazy list, and then drawing the overscroll separately on top / elsewhere."
Change-Id: Idbb3d91546b49c1987a041f959bce4b2b09a9f61
Files:
- M
compose/foundation/foundation/api/current.txt
- M
compose/foundation/foundation/api/restricted_current.txt
- M
compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/OverscrollDemo.kt
- M
compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/OverscrollSample.kt
- M
compose/foundation/foundation/src/androidInstrumentedTest/kotlin/androidx/compose/foundation/OverscrollTest.kt
- M
compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Overscroll.kt
Hash: f64e25b7a473c757d080521e7dd97b3f6670f60d
Date: Fri Nov 01 18:43:56 2024
jn...@google.com <jn...@google.com> #3
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.foundation:foundation:1.8.0-alpha06
androidx.compose.foundation:foundation-android:1.8.0-alpha06
androidx.compose.foundation:foundation-jvmstubs:1.8.0-alpha06
androidx.compose.foundation:foundation-linuxx64stubs:1.8.0-alpha06
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit 50c6882d8a5fa424793bb0d7cdb6e1c7480d58c8
Author: jnichol <jnichol@google.com>
Date: Mon Jan 17 15:08:52 2022
ScalingLazyColumn.kt - add autoCentering property
Add a new property autoCentering: Boolean defaulted to true to ScalingLazyColumn.kt that will add space before the first and after the last list items in order to ensure that they can be scrolled to the center of the viewport. This avoids the need for a developer to try and work out how much contentPadding might be required on different sizes of wearables/lists so that all items can be scrolled to the center to be properly viewed.
RelNote: "We have added a new property autoCentering to the ScalingLazyColumn. When true (the default) this will ensure that all items including the first and last can be scrolled so that they are visible in the center of the lists viewport. Note that if using auto-centering you will probably want to set vertical content padding to 0.dp. If both autoCentering and vertical content padding are provided then they will both result in addition space being available before the first and after the last list items allowing them to be scrolled even further."
Test: ./gradlew :wear:compose:compose-material:connectedCheck --info --daemon
Bug: 214922490
Change-Id: I2a2827ad79ea6cf1cb5d9a623b600417def9cc2f
M wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/ScalingLazyColumnBenchmark.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyColumn.kt
M wear/compose/compose-material/api/current.txt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyColumnIndexedTest.kt
M wear/compose/compose-material/api/restricted_current.txt
M wear/compose/compose-material/api/public_plus_experimental_current.txt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyColumnMeasure.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/PositionIndicatorTest.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyColumnTest.kt
https://android-review.googlesource.com/1951939
Branch: androidx-main
commit 50c6882d8a5fa424793bb0d7cdb6e1c7480d58c8
Author: jnichol <jnichol@google.com>
Date: Mon Jan 17 15:08:52 2022
ScalingLazyColumn.kt - add autoCentering property
Add a new property autoCentering: Boolean defaulted to true to ScalingLazyColumn.kt that will add space before the first and after the last list items in order to ensure that they can be scrolled to the center of the viewport. This avoids the need for a developer to try and work out how much contentPadding might be required on different sizes of wearables/lists so that all items can be scrolled to the center to be properly viewed.
RelNote: "We have added a new property autoCentering to the ScalingLazyColumn. When true (the default) this will ensure that all items including the first and last can be scrolled so that they are visible in the center of the lists viewport. Note that if using auto-centering you will probably want to set vertical content padding to 0.dp. If both autoCentering and vertical content padding are provided then they will both result in addition space being available before the first and after the last list items allowing them to be scrolled even further."
Test: ./gradlew :wear:compose:compose-material:connectedCheck --info --daemon
Bug: 214922490
Change-Id: I2a2827ad79ea6cf1cb5d9a623b600417def9cc2f
M wear/compose/compose-material/benchmark/src/androidTest/java/androidx/wear/compose/material/benchmark/ScalingLazyColumnBenchmark.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyColumn.kt
M wear/compose/compose-material/api/current.txt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyColumnIndexedTest.kt
M wear/compose/compose-material/api/restricted_current.txt
M wear/compose/compose-material/api/public_plus_experimental_current.txt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
M wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyColumnMeasure.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/PositionIndicatorTest.kt
M wear/compose/compose-material/src/androidAndroidTest/kotlin/androidx/wear/compose/material/ScalingLazyColumnTest.kt
Description
Based on feedback from developers there is a need to provide support to make it easy to ensure that all list items can be placed in the center of a ScalingLazyColumn viewport. That is that if they have an offset of 0 they would be placed centrally without the developer needing to try and work out how much vertical contentPadding to provide.