web-dev-qa-db-fra.com

ScrollView not Scrolling - Android

Je ne peux pas comprendre pourquoi cela se produit. Je suis incapable de faire défiler mon scrollview. Il a un textView, une imageview et quelques mises en page linéaires à l'intérieur de celui-ci. Lorsque je remplace les dispositions imageview et linéaires par textview, cela fonctionne. C'est vraiment inhabituel et frustrant. Quelqu'un peut-il m'aider? Voici mon code:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent" >

<ScrollView
    Android:id="@+id/scrollView1"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:fillViewport="true" >

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:animateLayoutChanges="true"
        Android:orientation="vertical"
        Android:scrollbars="vertical" >

        <TextView
            Android:id="@+id/textView1"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center"
            Android:text="Drop Text Down"
            Android:textAppearance="?android:attr/textAppearanceLarge" />

        <ImageView
            Android:id="@+id/imageView1"
            Android:layout_width="match_parent"
            Android:layout_height="555dp"
            Android:src="@drawable/ic_launcher" />

        <LinearLayout
            Android:layout_width="match_parent"
            Android:layout_height="100dp"
            Android:orientation="vertical" >

            <TextView
                Android:id="@+id/textView2"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" />

        </LinearLayout>

        <LinearLayout
            Android:id="@+id/ln"
            Android:layout_width="match_parent"
            Android:layout_height="100dp"
            Android:background="#000000"
            Android:orientation="vertical" >

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="100dp"
                Android:orientation="vertical" >

                <TextView
                    Android:id="@+id/TextView06"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" />
            </LinearLayout>

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="100dp"
                Android:orientation="vertical" >

                <TextView
                    Android:id="@+id/TextView05"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" />
            </LinearLayout>

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="100dp"
                Android:orientation="vertical" >

                <TextView
                    Android:id="@+id/TextView04"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" />
            </LinearLayout>

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="100dp"
                Android:orientation="vertical" >

                <TextView
                    Android:id="@+id/TextView03"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" />
            </LinearLayout>

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="100dp"
                Android:orientation="vertical" >

                <TextView
                    Android:id="@+id/TextView02"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" />
            </LinearLayout>

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="100dp"
                Android:orientation="vertical" >

                <TextView
                    Android:id="@+id/TextView01"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" />
            </LinearLayout>

        </LinearLayout>
    </LinearLayout>
</ScrollView>

</LinearLayout>

Merci.

7
David

La vue enfant d'une ScrollView doit être définie sur wrap_content. Si vous le définissez à match_parent, il remplira la zone de la ScrollView et ne défilera jamais, car il ne sera pas plus grand que la ScrollView.

Essayez de remplacer la variable enfant LinearLayout layout_height par wrap_content ou par une taille spécifique (en dp) au lieu de match_parent.

12
Bidhan A

Mettre une vue vide à hauteur fixe

<View
                Android:layout_width="match_parent"
                Android:layout_height="50dp" />

comme dernier élément de la mise en page linéaire, qui est un enfant de la vue par défilement.

Cela a fonctionné pour moi ..

9
Akshatha Srinivas

Votre enfant ScrollView doit avoir la hauteur wrap_content:

<ScrollView
Android:id="@+id/scrollView1"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
>

<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:animateLayoutChanges="true"
    Android:orientation="vertical"
    Android:scrollbars="vertical" >

    ... 
    ...
</LinearLayout>
</ScrollView>
2
Prashant Patel

Vous devez définir la hauteur de LinearLayout (enfant de Scrollview) sur wrap_content. 

Lorsque l'enfant est plus grand que ScrollView, l'attribut Android: fillViewport = "true" n'a aucun effet.

1
Vikas

J'ai réussi à le résoudre en ajoutant (Android: windowSoftInputMode = "adjustResize | stateHidden") dans le manifeste d'activité, comme ci-dessous.

<activity
            Android:name=".ui.main.MainActivity"
            Android:label="@string/app_name"
            Android:windowSoftInputMode="adjustResize|stateHidden"
            Android:screenOrientation="portrait"
            Android:theme="@style/AppTheme.NoActionBar">
        </activity> 
0
sodiqOladeni