ScrollView nicht scrollen, um das Ende der inneren LinearLayout unteren Rand

Habe ich Probleme mit einem Fragment, bestehend aus einem ScrollView mit einem LinearLayout. Ich versuche einen Effekt zu erstellen, wo das LinearLayout hat einen weißen hintergrund und sieht aus wie ein Stück Papier, das scrollen auf einem farbigen hintergrund. Die Art und Weise, die ich versuche zu erreichen, dieses ist durch die ScrollView besetzen die gesamte Grundfläche des fragments und dann das LinearLayout hat android:layout_margin="16dp" Raum geschaffen, um das "Papier".

Diese Weise wird die Bildlaufleiste der ScrollView wird in den farbigen hintergrund, der Rand oben scrollt sofort zusammen mit dem Inhalt und der Rand auf der Unterseite nur laufen, wenn man das Ende erreicht hat.

Leider in dieser Konfiguration wird die ScrollView nicht scrollen den ganzen Weg bis zum Ende und in der Tat schneidet eine sehr kleine Menge des Textes an der Unterseite. Ich vermute, dass der ScrollView nicht unter Berücksichtigung seines Kindes Margen in seine vertikale Scroll-Abstand. Um dieses Problem zu lösen habe ich gewickelt das LinearLayout in einem FrameLayout das löst das Problem, aber scheint überflüssig. Irgendwelche Hinweise, wie um diese zu beseitigen nicht mehr benötigte container werden würde geschätzt.

Hinweis: Einstellung android:padding="16dp" auf die ScrollView und Verschrottung die Margen nicht den gewünschten Effekt haben, als dann die Polsterung erscheint auf allen vier Kanten kontinuierlich, unabhängig von der scroll-position.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    tools:context=".ArticleFragment" >

    <!-- This FrameLayout exists purely to force the outer ScrollView to respect
         the margins of the LinearLayout -->
    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="10dp"
            android:layout_margin="16dp"
            android:background="@color/page_background" >

            <TextView
                android:id="@+id/article_title"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textIsSelectable="true" />

            <TextView
                android:id="@+id/article_content"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textIsSelectable="true" />

       </LinearLayout>
    </FrameLayout>
</ScrollView>
  • Habe versucht android:layout_height="fill_parent" zu den ScrollView?
  • Ja, keine Freude. Die Größe der ScrollView ist nicht wirklich ein Problem - es füllt den Raum zur Verfügung, um es angemessen. Es ist der Bereich von Blättern, dass es nicht scrollen, um das Ende seiner Inhalte, wenn seine sofortige Kind hat einen Rand. Ich glaube das Problem wird verursacht, indem es sich nicht nehmen, seinem Kind die Marge berücksichtigt bei der Berechnung der Bildlaufbereich.
InformationsquelleAutor Graham Lyon | 2013-05-08
Schreibe einen Kommentar