commit | e7e5898440bb95b1a54cf7be6481642e1fdcff1a | [log] [tgz] |
---|---|---|
author | Jossi Wolf <[email protected]> | Fri Sep 30 16:53:48 2022 +0200 |
committer | Jossi Wolf <[email protected]> | Thu Oct 20 08:59:30 2022 +0000 |
tree | 7b36b9b4ab316c773cd34ab7a3a936615bc61952 | |
parent | c25d75df9c919839a68c3a41503379737fa15d98 [diff] |
Positional and velocity thresholds in Swipeable V2. Positional thresholds allow defining a point from the origin of an interaction (swipes or animations) that needs to be crossed in order for the next closest state in the interaction direction to be considered the target state. In Material 2, the default value is 56 dp. A positional threshold can be either a fixed (absolute value) or a fractional value. A fixed threshold can be defined using `fixedPositionalThreshold(x.dp)`, a fractional threshold using `fractionalPositionalThreshold(0.3f)`. Positional thresholds should not be different between different states, but can be calculated from the distance, i.e. when expressing a fractional threshold. Velocity thresholds help interpret user intent. Velocity thresholds take precedence over positional thresholds when calculating the target. If the velocity is higher than the velocity threshold but the positional threshold has not yet been reached, the next closest state in the interaction direction will still be the target state. Velocity thresholds are always constant per Swipeable instance and should not change between different states to create consistent UX. In Material 2, the default value is 125 dp/ms. Compared to Swipeable V1, thresholds are more consistent and have simpler layering, removing the `ThresholdConfig` API. Test: SwipeableV2GestureTest Relnote: N/A Bug: 247983516 Change-Id: I61679a2e310d710f82ec4adce538a9c156a69939
Jetpack is a suite of libraries, tools, and guidance to help developers write high-quality apps easier. These components help you follow best practices, free you from writing boilerplate code, and simplify complex tasks, so you can focus on the code you care about.
Jetpack comprises the androidx.*
package libraries, unbundled from the platform APIs. This means that it offers backward compatibility and is updated more frequently than the Android platform, making sure you always have access to the latest and greatest versions of the Jetpack components.
Our official AARs and JARs binaries are distributed through Google Maven.
You can learn more about using it from Android Jetpack landing page.
For contributions via GitHub, see the GitHub Contribution Guide.
Note: The contributions workflow via GitHub is currently experimental - only contributions to the following projects are being accepted at this time:
When contributing to Jetpack, follow the code review etiquette.
We are not currently accepting new modules.
Head over to the onboarding docs to learn more about getting set up and the development workflow!
Our continuous integration system builds all in progress (and potentially unstable) libraries as new changes are merged. You can manually download these AARs and JARs for your experimentation.
Before uploading your first contribution, you will need setup a password and agree to the contribution agreement:
Generate a HTTPS password: https://android-review.googlesource.com/new-password
Agree to the Google Contributor Licenses Agreement: https://android-review.googlesource.com/settings/new-agreement
AndroidX uses git to store all the binary Gradle dependencies. They are stored in prebuilts/androidx/internal
and prebuilts/androidx/external
directories in your checkout. All the dependencies in these directories are also available from google()
, jcenter()
, or mavenCentral()
. We store copies of these dependencies to have hermetic builds. You can pull in a new dependency using our importMaven tool.