J'ai une mise en page simple comme suit:
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#D23456" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="10dp"
Android:background="#FFFFFF" >
<ImageView
Android:layout_width="match_parent"
Android:layout_height="800dp"
Android:src="@drawable/ic_launcher" />
</LinearLayout>
</ScrollView>
L’arrière-plan du défilement est rose et l’agencement linéaire à l’intérieur de l’icône d’icône Android avec une hauteur de 800dp (qui ne correspond pas à l’écran). Ce que je compte voir, c’est que imageview flotte dans un fond rose avec une marge de 10dp dans tous les côtés (haut, bas, gauche, droite). marge, de sorte que le bas du défilement est l'imageview pas la marge rose.
Comment puis-je empêcher cela? Cela fait penser à l'utilisateur que la page n'est pas encore terminée et lui donne envie de faire défiler davantage.
J'ai découvert par la suite qu'une situation similaire avait déjà été résolue dans le fil suivant https://stackoverflow.com/a/16885601/1474471 de @olefevre.
L'ajout d'un LinearLayout supplémentaire qui entoure le LinearLayout actuel avec un rembourrage et la suppression de la marge de présentation de LinearLayout interne ont résolu le problème:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="#D23456"
Android:padding="10dp" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="#FFFFFF" >
<ImageView
Android:layout_width="match_parent"
Android:layout_height="800dp"
Android:src="@drawable/ic_launcher" />
</LinearLayout>
</LinearLayout>
</ScrollView>
La solution publiée par @Mehmet Katircioglu fonctionne bien, mais vous pouvez résoudre le problème en changeant simplement le Android: layout_margin en Android: padding , sans aucune vue supplémentaire. Comme ça:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent" >
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="#D23456"
Android:padding="10dp" >
<!-- Your content (ImageView, buttons...) -->
<LinearLayout/>
utiliser Android:fillViewport="true"
sur la ScrollView
peut le faire.
exemple dans ce fil .