Wie zu erhöhen ScrollView-Höhe in Android?
Hallo Freunde,
Ich bin mit GridView
innerhalb einer ScrollView
für die Anzeige der Bilder. In der GridView-ich habe 16 Bilder, die dynamisch Hinzugefügt, aber das ScrollView
wird nicht angezeigt, alle 16 Bilder (siehe screenshot).
Möchte ich die ScrollView
zur Anzeige des ganzen GridView
, weiß jemand wie ich dies beheben können?
Danke an alle.
xml-Datei:
<?xml version="1.0" encoding="utf-8"?>
<merge android:layout_width="wrap_content" android:layout_height="340dip" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="320dip" android:orientation="vertical"
android:background="@color/black">
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollview"
android:layout_width="fill_parent"
android:layout_height="500dip"
android:background="#ffffff"
android:paddingTop="10dip"
android:paddingLeft="5dip"
android:layout_weight="1">
<GridView
android:id="@+id/jr_lookbook_grid" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:numColumns="4"
android:verticalSpacing="10dp" android:horizontalSpacing="10dp"
android:columnWidth="90dp" android:stretchMode="columnWidth"
android:adjustViewBounds="true"
android:background="@drawable/shape"
android:gravity="center" android:layout_weight="1"/>
</ScrollView>
<Button android:id="@+id/click"
android:background="@android:color/transparent"
android:text="Load More Pictures..."
android:textColor="@color/white"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_centerVertical="true" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout02_img"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:layout_alignParentBottom="true"
android:background="@color/black"
android:layout_alignParentLeft="true">
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
/>
<ImageView android:id="@+id/ImageView01"
android:layout_gravity="center_horizontal"
android:scaleType="centerInside"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:adjustViewBounds="true">
</ImageView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayout02" android:background="#AA000000"
android:layout_width="400px"
android:layout_height="50dip"
android:layout_gravity="bottom"
>
<Button
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/back1"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
/>
<Button
android:background="@drawable/forward5"
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_alignParentRight="true"
android:layout_marginLeft="215dip"
/>
</LinearLayout>
</merge>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Use Attribut
android:fillViewport="true"
im XML-layout oder verwenden Sie die MethodesetFillViewport(true)
im Java-code.Haben Sie einen Blick auf : ScrollView-Dokumentation
Ich hatte ein ähnliches Problem, wo ich eine scrollview unter eine Feste Navigationsleiste auf ein AbsoluteLayout.
Ich die scrollview-Höhe um die Höhe von meinem Bildschirm weniger die Höhe der navbar.
Mein Bildschirm war 480dp hoch und die navbar war 47dp hoch, so dass ich die scrollview-Höhe zu 433dp in der xml-layout und zog die Spitze der scrollview unten die Navigationsleiste, die mit einem Y-offset.
Fügen Sie die folgenden imports:
Nun, um es Arbeit für mehrere Bildschirme, fügte ich diese zu onCreate für die Aktivität:
Mit Hilfe dieser Helfer-Funktion, um die Bildschirm-Höhe:
Sollten Sie nicht hinzufügen GridView in ScrollView. Bitte beachten Sie die GridView-API für das Verständnis der GridView.
Gemäß der definition GridView zeigt die Elemente in zweidimensionalen scrollbaren raster. Daher, wenn Sie fügen Sie einem scrollbaren Komponente innerhalb ScrollView das Verhalten nicht wie erwartet. Wie können wir hinzufügen ListView-innen ScrollView wir können und sollten nicht hinzufügen GridView-innen ScrollView.
Meiner Meinung nach, gibt es keine Notwendigkeit zum hinzufügen von Blättern-Ansicht für die Rasteransicht. In Android, es werden scroll-view automatisch, wenn es irgendeine Notwendigkeit gibt.
Wenn der untere Teil des
layout
& top-Teil der layout-Gewicht: 0, dann setzen Sie die scroll-Ansichten auf 1 und die Verwendunglayout_height="match_parent"
.