Fixed
Status Update
Comments
cl...@google.com <cl...@google.com>
lp...@google.com <lp...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 23a7d960caf43390a554700d3c56ada189a9d10e
Author: Louis Pullen-Freilich <lpf@google.com>
Date: Mon Aug 10 15:11:36 2020
IconButton / IconToggleButton API scrub
Test: ./gradlew updateApi
Bug: b/161809385
Bug: b/161807956
Relnote: "Adds enabled parameter to IconButton, and reorders parameters in IconToggleButton"
Change-Id: I0a9419b1a631cadad451395302ad87b7f9214f96
M ui/ui-material/api/current.txt
M ui/ui-material/api/public_plus_experimental_current.txt
M ui/ui-material/api/restricted_current.txt
M ui/ui-material/src/commonMain/kotlin/androidx/compose/material/IconButton.kt
https://android-review.googlesource.com/1394868
Branch: androidx-master-dev
commit 23a7d960caf43390a554700d3c56ada189a9d10e
Author: Louis Pullen-Freilich <lpf@google.com>
Date: Mon Aug 10 15:11:36 2020
IconButton / IconToggleButton API scrub
Test: ./gradlew updateApi
Bug:
Bug:
Relnote: "Adds enabled parameter to IconButton, and reorders parameters in IconToggleButton"
Change-Id: I0a9419b1a631cadad451395302ad87b7f9214f96
M ui/ui-material/api/current.txt
M ui/ui-material/api/public_plus_experimental_current.txt
M ui/ui-material/api/restricted_current.txt
M ui/ui-material/src/commonMain/kotlin/androidx/compose/material/IconButton.kt
gs...@gmail.com <gs...@gmail.com> #3
The bug can be reproduced by using the BottomNav example in my repo
The version of compose is alpha03
https://github.com/gastsail/JetExample
The version of compose is alpha03
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-main
commit 152103eb2da716cc91db034ce37bad6b22696b64
Author: Louis Pullen-Freilich <lpf@google.com>
Date: Thu Apr 22 13:30:11 2021
Migrates Ripple to use RippleDrawable internally
This allows the ripple to be animated on the RenderThread, avoiding jank when the UI thread is under load, such as navigating between screens.
Fixes: b/184842196
Fixes: b/168777351
Bug: b/183019123
Test: MaterialRippleThemeTest
Test: LocalRippleNativeRenderingTest
Test: RippleContainerTest
Relnote: "Ripple has been migrated to use RippleDrawable internally on Android devices. This means that ripple animations will happen on the RenderThread, and so will be smooth even when the UI thread is under load, such as when navigating between screens. This does not change the API surface of ripple, but there may be behavior changes introduced as a result of this change. To aid the migration, `LocalRippleNativeRendering` has been added - provide a value of `false` to this CompositionLocal to fall back to the previous ripple implementation inside the CompositionLocalProvider. This API is temporary and will be removed in the future, so if you run into issues that cause you to use this API, please file a bug:https://issuetracker.google.com/issues/new?component=612128 "
Change-Id: I902f8eecaa8e3f55eb4c1bebc86f4f50e2967d0c
M compose/material/material-ripple/api/1.0.0-beta06.txt
M compose/material/material-ripple/api/current.txt
M compose/material/material-ripple/api/public_plus_experimental_1.0.0-beta06.txt
M compose/material/material-ripple/api/public_plus_experimental_current.txt
M compose/material/material-ripple/api/restricted_1.0.0-beta06.txt
M compose/material/material-ripple/api/restricted_current.txt
M compose/material/material-ripple/build.gradle
A compose/material/material-ripple/src/androidAndroidTest/AndroidManifest.xml
A compose/material/material-ripple/src/androidAndroidTest/kotlin/androidx/compose/material/ripple/LocalRippleNativeRenderingTest.kt
A compose/material/material-ripple/src/androidAndroidTest/kotlin/androidx/compose/material/ripple/RippleContainerTest.kt
A compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/Ripple.android.kt
A compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/RippleContainer.android.kt
A compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/RippleHostView.android.kt
A compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/CommonRipple.kt
M compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/Ripple.kt
A compose/material/material-ripple/src/desktopMain/kotlin/androidx/compose/material/ripple/Ripple.desktop.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/BottomNavigationScreenshotTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/MaterialRippleThemeTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/TabScreenshotTest.kt
https://android-review.googlesource.com/1668605
Branch: androidx-main
commit 152103eb2da716cc91db034ce37bad6b22696b64
Author: Louis Pullen-Freilich <lpf@google.com>
Date: Thu Apr 22 13:30:11 2021
Migrates Ripple to use RippleDrawable internally
This allows the ripple to be animated on the RenderThread, avoiding jank when the UI thread is under load, such as navigating between screens.
Fixes:
Fixes:
Bug:
Test: MaterialRippleThemeTest
Test: LocalRippleNativeRenderingTest
Test: RippleContainerTest
Relnote: "Ripple has been migrated to use RippleDrawable internally on Android devices. This means that ripple animations will happen on the RenderThread, and so will be smooth even when the UI thread is under load, such as when navigating between screens. This does not change the API surface of ripple, but there may be behavior changes introduced as a result of this change. To aid the migration, `LocalRippleNativeRendering` has been added - provide a value of `false` to this CompositionLocal to fall back to the previous ripple implementation inside the CompositionLocalProvider. This API is temporary and will be removed in the future, so if you run into issues that cause you to use this API, please file a bug:
Change-Id: I902f8eecaa8e3f55eb4c1bebc86f4f50e2967d0c
M compose/material/material-ripple/api/1.0.0-beta06.txt
M compose/material/material-ripple/api/current.txt
M compose/material/material-ripple/api/public_plus_experimental_1.0.0-beta06.txt
M compose/material/material-ripple/api/public_plus_experimental_current.txt
M compose/material/material-ripple/api/restricted_1.0.0-beta06.txt
M compose/material/material-ripple/api/restricted_current.txt
M compose/material/material-ripple/build.gradle
A compose/material/material-ripple/src/androidAndroidTest/AndroidManifest.xml
A compose/material/material-ripple/src/androidAndroidTest/kotlin/androidx/compose/material/ripple/LocalRippleNativeRenderingTest.kt
A compose/material/material-ripple/src/androidAndroidTest/kotlin/androidx/compose/material/ripple/RippleContainerTest.kt
A compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/Ripple.android.kt
A compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/RippleContainer.android.kt
A compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/RippleHostView.android.kt
A compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/CommonRipple.kt
M compose/material/material-ripple/src/commonMain/kotlin/androidx/compose/material/ripple/Ripple.kt
A compose/material/material-ripple/src/desktopMain/kotlin/androidx/compose/material/ripple/Ripple.desktop.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/BottomNavigationScreenshotTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/MaterialRippleThemeTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/TabScreenshotTest.kt
Description
Problem, while I tap each destination on my BottomNav it selects the destination and highlights them but without the ripple effect at first, when I reach the end of the list (or random item) the ripple takes effect and starts to lag the selection of each destination
Code
BottomNavigation(content = {
listItems.forEachIndexed { index, item ->
BottomNavigationItem(
icon = {
Icon(asset = item.icon)
},
label = { Text(item.title) },
onClick = {
selectedIndex.value = index
showMessage(context, "${item.title} selected")
},
selected = selectedIndex.value == index
)
}
})
Output