Ce que je veux archiver peut être mieux expliqué avec une imageConserver la position de défilement ScrollView pour le contenu dynamique
La boîte grise représente l'écran, la boîte bleue est méta information, la boîte arrondie blanche un SearchView et les cases rouges sont des éléments renvoyés par la recherche.
J'ai eu ce travail jusqu'à présent, mais le problème se produit lorsque l'utilisateur cherche quelque chose et les éléments dépassent l'écran (1). Ensuite, l'utilisateur fait défiler vers le bas, de sorte que les informations méta sont en dehors de l'écran (2). L'utilisateur peut maintenant entrer une nouvelle requête de recherche et ainsi modifier les éléments. Cependant, lorsque la nouvelle requête retourne trop peu d'éléments pour remplir le reste de l'écran (3), ScrollView va "revenir" en haut (pas dans l'image, pas désiré). Ce que je veux, c'est un comportement où le SearchView reste en place (3). Une fois dans cet état, l'utilisateur peut revenir en haut (4). Si elle le fait, elle ne peut pas revenir en arrière, à la place, les indicateurs de surréglementation s'afficheront.
Un comportement similaire peut être observé dans l'application Google+. De l'écran de démarrage allez à votre profil (appuyez sur votre nom en haut). Vous verrez trois registres ("À propos de moi", "Messages", "Photos" *). J'ai par exemple pas de photos là-bas et le comportement est tel que décrit.
éditer Le ScrollView est la racine de la vue.
modifier structure de mise en page de base
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:overScrollMode="always"
android:fillViewport="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View /> <!-- Meta info -->
<SearchView />
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
<View /> <!-- Item representing search result -->
</LinearLayout>
</ScrollView>
*) Traduction de l'App On suppose allemande.
Comme je ne suis pas familier avec la façon dont cela est fait, peut-être que vous pouvez fournir des extraits de quelles classes sont utilisées pour atteindre ce comportement de défilement que vous avez travaillé jusqu'à présent. Réfléchir au processus et essayer de trouver une approche. –
Avez-vous essayé d'utiliser scrollTo() pour décaler le ScrollView? Je ne sais pas si c'est ce que vous devriez utiliser, mais cela peut aider. – zgc7009
C'est juste un ScrollView simple autour de tout le reste. Rien d'extraordinaire. – Mene