Je veux implémenter ceci: un ScrollView qui contient de nombreux éléments (ImageViews, TextViews, EditTexts, etc.), puis après le ScrollView quelques boutons (qui sont des ImageViews personnalisées) qui apparaissent toujours exactement au bas de l'écran.
Si j'utilise l'attribut Android: fillViewport = "true", alors si les éléments du ScrollView sont trop grands pour tenir dans la taille de l'écran, les boutons deviennent invisibles. Si j'utilise l'attribut Android: Weight = 1, le ScrollView n'obtient que 50% de l'écran lorsque l'écran est grand et qu'il peut tenir (je veux que les boutons prennent un petit pourcentage, environ 10%). Si je règle Android: Weight sur des valeurs plus grandes, les boutons apparaissent très petits.
Veuillez aider! C'est peut-être quelque chose de simple que j'ai négligé, mais je me tape la tête depuis des heures!
Je viens de le créer et de le tester. On dirait que tu veux.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:id="@+id/buttons"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:gravity="center"
Android:layout_alignParentBottom="true">
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Custom Button1"/>
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Custom Button2"/>
</LinearLayout>
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_above="@id/buttons">
<!--Scrollable content here-->
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
<TextView
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:text="test text"
Android:textSize="40dp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="1">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Hello World"
/>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Hallo Welt"
/>
</LinearLayout>
</ScrollView>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="0">
<Button
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Go next page"
Android:layout_alignParentRight="true" />
</RelativeLayout>
</LinearLayout>
Cela a fonctionné pour moi. Donnez à la vue de défilement un poids de 1. Placez tous les autres widgets suivant la vue de défilement dans une disposition. La vue de défilement augmentera suffisamment pour ne pas bloquer le reste.
scrollview ne peut pas s'adapter à l'écran parce que vous le mettez sur une disposition linéaire, donc la disposition linéaire tient dans l'écran,
essayez juste de faire scrollview en tant que root elemen sur la mise en page xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/scrollView1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
<LinearLayout
Android:id="@+id/linearLayout1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
<!-- Here you can put some XML stuff and BOOM! your screen fit to scrollview -->
</LinearLayout>
</ScrollView>