Skip to content

Correction du scroll automatique qui remontait au début du dernier message#83

Open
Spriana wants to merge 1 commit into
FranckRJ:masterfrom
Spriana:issue1
Open

Correction du scroll automatique qui remontait au début du dernier message#83
Spriana wants to merge 1 commit into
FranckRJ:masterfrom
Spriana:issue1

Conversation

@Spriana

@Spriana Spriana commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Quand le dernier message était plus grand que l'écran et qu'on rafraichissait en étant tout en bas, la vue remontait pour afficher le haut de ce message au lieu de rester en bas : setSelection aligne le haut de l'item visé sur le haut de la liste, et smoothScrollToPosition fait pareil quand l'item est déjà partiellement visible (AbsListView.PositionScroller.scrollToVisible privilégie le bord haut).

Le saut instantané passe donc par TRANSCRIPT_MODE_ALWAYS_SCROLL, qui fait le layout à partir du bas de la liste, et le scroll animé calcule lui-même la distance restante après le layout provoqué par les nouveaux messages (avec repli sur smoothScrollToPosition quand le dernier message est encore hors écran, cas où celui-ci finit bien aligné en bas).

Corrige #1.

Je n’ai pas personnellement testé ; Claude a testé dans l’émulateur :

cas résultat
build sans le correctif, en bas + appui long la vue quitte le bas ✗ (bug reproduit)
avec le correctif, smooth scroll activé (défaut) reste en bas ✓
avec le correctif, smooth scroll désactivé reste en bas ✓
rafraichissement au milieu de la page position inchangée ✓ (pas de saut en bas parasite)
bascule en mode IRC contenu court aligné en haut, pas de crash ✓

…ssage.

Quand le dernier message était plus grand que l'écran et qu'on rafraichissait en étant tout en bas, la vue remontait pour afficher le haut de ce message au lieu de rester en bas : setSelection aligne le haut de l'item visé sur le haut de la liste, et smoothScrollToPosition fait pareil quand l'item est déjà partiellement visible (AbsListView.PositionScroller.scrollToVisible privilégie le bord haut).

Le saut instantané passe donc par TRANSCRIPT_MODE_ALWAYS_SCROLL, qui fait le layout à partir du bas de la liste, et le scroll animé calcule lui-même la distance restante après le layout provoqué par les nouveaux messages (avec repli sur smoothScrollToPosition quand le dernier message est encore hors écran, cas où celui-ci finit bien aligné en bas).

Corrige #1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant