App
App copied to clipboard
[$500] Scrolling on Android/Android Mobile Web doesn't have decelerating behavior like on iOS
Action Performed:
- Navigate to any report or the LHN.
- Scroll up or down.
Expected Result:
Scrolling should decelerate when you lift your thumb off the screen.
Actual Result:
Scrolling stops immediately when you lift your thumb off the screen.
Workaround:
N/A
Platform:
Where is this issue occurring?
- Android
- Mobile Web
Version Number: v1.2.4-2 Reproducible in staging?: Yes Reproducible in production?: Yes Email or phone of affected tester (no customers): Logs: https://stackoverflow.com/c/expensify/questions/4856 Notes/Photos/Videos: Any additional supporting documentation Expensify/Expensify Issue URL: Issue reported by: @quinthar Slack conversation:
Triggered auto assignment to @laurenreidexpensify (AutoAssignerTriage
), see https://stackoverflow.com/c/expensify/questions/4749 for more details.
⚠️ Looks like this issue was linked to a possible regression on PRODUCTION here
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a production regression has occurred a Root Cause Analysis is required. Please follow the instructions here.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
@jasperhuangg co-assigning to you to check link to the regression as above, thanks
@jasperhuangg bump ^^
Triggered auto assignment to @alex-mechler (Engineering
), see https://stackoverflow.com/c/expensify/questions/4319 for more details.
Asked in Slack here @mountiny suggested next step is to add Eng label to move forward to External
Looks good to go to external, might be nice to get a video comparing ios to android though
Current assignee @laurenreidexpensify is eligible for the External assigner, not assigning anyone new.
Triggered auto assignment to Contributor-plus team member for initial proposal review - @Santhosh-Sellavel (External
)
Triggered auto assignment to @Julesssss (External
), see https://stackoverflow.com/c/expensify/questions/7972 for more details.
Due to Limited Availability unassigning this one. Can you reapply the external label to get another C+ assigned thanks! @laurenreidexpensify or @Julesssss
Current assignee @laurenreidexpensify is eligible for the External assigner, not assigning anyone new.
Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (External
)
Current assignee @Julesssss is eligible for the External assigner, not assigning anyone new.
https://www.upwork.com/jobs/~01c693f5f951f62330
Awaiting proposals. There's probably a prop of some sort that needs to be flipped, as this is the default behavior for Android scroll views
Proposal
There is a property called decelerationRate which sets the decleration rate of scroll on ios or android. Reading the Documentation we can see that we can set 'normal' | 'fast' | number My recommendation is that we go with normal, so that way we don't mess with already existing decleration on IOS but just add a decleration on Android
We should add decelerationRate property on FlatList in LHNOptionsList.js
On line 89
<FlatList decelerationRate="normal"
https://github.com/Expensify/App/blob/1a42cf8a48bcb51b7b469f342a3f122de7aaef34/src/components/LHNOptionsList/LHNOptionsList.js#L88
Also in ReportActionsList.js
Line 176
<InvertedFlatList decelerationRate="normal"
https://github.com/Expensify/App/blob/1a42cf8a48bcb51b7b469f342a3f122de7aaef34/src/pages/home/report/ReportActionsList.js#L175
@Uros787 thank you for the proposal.
I understand that we're trying to set the decelerationRate
to normal
, but the docs suggest that the rate is normal
by default. docs - scrollview#decelerationrate
I went to sleep on this proposal I left yesterday, I guess I should've seen that it's normal by default.
Let me propose something like this.
Let's utilize Platform from react native, and write code like this:
decelerationRate={Platform.OS === 'android' ? 0.998 : 'normal'}
Why 0.998? That is a default deceleration on iOS, that way we can mimic the deceleration on both platforms
Hahaha that happens.
I don't think we should change the deceleration rate from the default value on Android. Scrolling experience should be consistent between different apps on a given platform.
Thought: Is this issue occuring because scrolling in general is now faster? see slack 🧵
cc: @Julesssss
@rushatgabhane is there a way for contributors to access slack?
@Uros787 yes, you need to request an invite to the #expensify-open-source
channel by emailing [email protected] with the subject Slack Channel Invite
and include a link to your Upwork profile.
(source)
I don't think we should change the deceleration rate from the default value on Android.
Yeah, I agree 100%. Android's RecyclerView (native version of FlatList) will decelerate by default. Something is preventing this and I'd like to see a solution that addresses this instead of applying a workaround.
Still awaiting a proposal
@laurenreidexpensify could you please double the bounty. Thanks
Sorry @Julesssss was OOO and this got lost in the mix. Will double now.
Thanks, we're still awaiting proposals
price doubled
I can't recreate the issue - scrolling does not stop as soon as I lift my finger it continues and decelerates
I tested on physical Android device running Android 8
(I've also tried a simulator using Android 12, and couldn't recreate as well)
Agreed this seems to have been fixed I can reproduce either.
On Tue, Nov 1, 2022, 8:30 AM Peter Velkov @.***> wrote:
I can't recreate the issue - scrolling does not stop as soon as I lift my finger it continues and decelerates
I tested on physical Android device running Android 8
— Reply to this email directly, view it on GitHub https://github.com/Expensify/App/issues/11241#issuecomment-1298707737, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEMNUUFDXKXEKI4L7OU7WLWGEZPTANCNFSM6AAAAAAQUEXH44 . You are receiving this because you were mentioned.Message ID: @.***>