Android: RelativeLayout in ScrollView
Ich habe eine RelativeLayout
mit mehreren ImageView
s und wenn ich auf den Bildschirm, um die ImageView
s in Unordnung geraten. Also beschloss ich, wickeln Sie es in ein ScrollView
. Aber die ScrollView
funktioniert nicht!
Kann einer mir dabei helfen? Ich weiß, dass der richtige Weg ist die Gestaltung eines GridView
oder ListView
, aber da hatte ich einige Fragen, und niemand antwortete mir, habe ich beschlossen diesen Weg gehen.
Hier ist mein xml code :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/continuePizza"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="continue" />
<Button
android:id="@+id/finishP"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/continuePizza"
android:layout_alignParentLeft="true"
android:text="finish" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="16dp"
android:src="@drawable/download" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView1"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/imageView1"
android:src="@drawable/download" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView1"
android:layout_marginTop="18dp"
android:src="@drawable/download" />
<ImageView
android:id="@+id/imageView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageView3"
android:layout_centerVertical="true"
android:src="@drawable/download" />
<ImageView
android:id="@+id/imageView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView3"
android:src="@drawable/download" />
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView5"
android:layout_marginTop="17dp"
android:src="@drawable/download" />
<ImageView
android:id="@+id/imageView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageView2"
android:layout_alignTop="@+id/imageView5"
android:layout_marginLeft="10dp"
android:src="@drawable/download" />
<ImageView
android:id="@+id/imageView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageView7"
android:layout_alignTop="@+id/imageView3"
android:src="@drawable/download" />
</RelativeLayout>
</ScrollView>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erlebte ich dasselbe problem mit dem Relative Layout innerhalb Scroll-View zur überwindung dieses wickelte ich mir um die relative layout mit einem linearen layout , versuchen Sie wie dieser und auch entfernen, die Orientierung aus der relativen layout
Einfache Lösung, einfach hinzufügen android:fillViewport="true" " Scrollview wie :
Wenn Sie die ScrollView, sollten Sie wissen, dass Sie nur einen Bildlauf durchführen können, wenn die Höhe der ScrollView kleiner als die Höhe des ScrollView Kind.
Um dieses problem zu lösen, definieren Sie die Höhe des LinearLayout zu match_parent, die das einzige Kind der ScrollView. Dann definieren Sie die Höhe der ScrollView in den Java-code, wie
scrollView.getChildAt(0).getHeight() - 1;
um sicherzustellen, dass die Höhe der ScrollView kleiner als die Höhe des ScrollView Kind.Für Ihre eigene Antwort, es ist nicht ein guter Weg, um magic numbers im code, wie 427dp und 548dp.
Ich lösen konnte meine Frage mit Hilfe der Liebe Ravi und ein wenig ändern :
der code geht so :