7
votes

Android: ScrollView ne fait pas défiler

J'essaie de créer une mise en page avec un en-tête, une bannière en dessous, puis un couple de liste de liste sous la bannière. Je veux que l'écran complet soit défilable sauf l'en-tête. Maintenant, je sais que ListView ne fait pas défiler dans une vision de ScrollView, donc j'ai défini la hauteur de la vue de liste pour afficher tous les éléments. Le problème est que, même après ces modifications, je vois que la liste de liste est défilante de manière indépendante et l'écran complet n'est pas défilable.

` p>

<include
    android:id="@+id/logo_header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    layout="@layout/screen_header" />

<ScrollView
    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:orientation="vertical">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:layout_weight="0.8"
            android:background="#f2f2f2">

            <include
                android:id="@+id/mcUser"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                layout="@layout/complaint_reporters_details"
                android:layout_weight="2" />

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="horizontal"
                android:weightSum="9"
                android:layout_weight="2">

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="vertical"
                    android:weightSum="1"
                    android:layout_weight="3"
                    android:focusableInTouchMode="false"
                    android:paddingLeft="30dp"
                    android:paddingRight="30dp">

                    <ImageView android:id="@+id/mcShowList"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:gravity="center"
                        android:layout_marginTop="5dp"
                        android:layout_marginBottom="5dp"
                        android:scaleType="fitXY"
                        android:src="@drawable/list_icon"
                        android:layout_weight="0.2" />

                    <TextView android:id="@+id/mcShowList_label"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:gravity="center"
                        android:textStyle="bold"
                        android:textSize="12sp"
                        android:textColor="#929292"
                        android:maxLines="1"
                        android:text="List"
                        android:layout_weight="0.8"
                        android:layout_marginTop="-8dp" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="vertical"
                    android:weightSum="1"
                    android:layout_weight="3"
                    android:gravity="center_vertical|center_horizontal"
                    android:paddingLeft="30dp"
                    android:paddingRight="30dp">

                    <ImageView android:id="@+id/mcShowMap"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:gravity="center"
                        android:layout_marginTop="5dp"
                        android:layout_marginBottom="5dp"
                        android:scaleType="fitXY"
                        android:src="@drawable/map_view"
                        android:layout_weight="0.2"/>

                    <TextView android:id="@+id/mcShowMap_label"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:gravity="center"
                        android:textStyle="bold"
                        android:textSize="12sp"
                        android:textColor="#929292"
                        android:maxLines="1"
                        android:text="Map"
                        android:layout_weight="0.8"
                        android:layout_marginTop="-8dp" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="vertical"
                    android:weightSum="1"
                    android:layout_weight="3"
                    android:focusableInTouchMode="false"
                    android:paddingRight="30dp"
                    android:paddingLeft="30dp">

                    <ImageView android:id="@+id/mcShowAnalytics"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:gravity="center"
                        android:layout_marginTop="5dp"
                        android:layout_marginBottom="5dp"
                        android:scaleType="fitXY"
                        android:src="@drawable/analytics_icon"
                        android:layout_weight="0.2" />

                    <TextView android:id="@+id/mcShowAnalytics_label"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:gravity="center"
                        android:textStyle="bold"
                        android:textSize="12sp"
                        android:textColor="#929292"
                        android:maxLines="1"
                        android:text="Analytics"
                        android:layout_weight="0.8"
                        android:layout_marginTop="-10dp" />

                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

        <RelativeLayout
            android:layout_weight="0.2"
            android:layout_width="fill_parent"
            android:layout_height="400dp">

            <FrameLayout
                android:id="@+id/mcMapContainer"
                android:layout_width="match_parent"
                android:layout_height="fill_parent"/>

            <LinearLayout
                android:id="@+id/mcAnalyticsContainer"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="fill_parent">

                <FrameLayout
                    android:id="@+id/mcChartContainer"
                    android:layout_gravity="center"
                    android:layout_width="200dp"
                    android:layout_height="200dp"/>

                <GridView
                    android:id="@+id/mcAmenityList"
                    android:layout_height="0dp"
                    android:layout_weight="7"
                    android:layout_width="match_parent"
                    android:numColumns="3"/>

            </LinearLayout>

            <LinearLayout
                android:id="@+id/mcListContainer"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="1">

                <TextView
                    android:text="Open Complaints"
                    android:textColor="@color/red_btn_bg_color"
                    android:textSize="18dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical|center_horizontal"
                    android:padding="5dp" />

                <ListView
                    android:id="@+id/mcListOpen"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>

                <TextView
                    android:text="Closed Complaints"
                    android:textColor="@color/red_btn_bg_color"
                    android:textSize="18dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical|center_horizontal"
                    android:padding="5dp" />

                <ListView
                    android:id="@+id/mcListClosed"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>

            </LinearLayout>

        </RelativeLayout>

    </LinearLayout>

</ScrollView>


1 commentaires

S'il vous plaît voir ma réponse dans une autre question .. Ajout d'une autre vue vide


4 Réponses :


0
votes

Vous pouvez essayer cela, xxx


0 commentaires

2
votes

J'ai utilisé la méthode suivante plusieurs fois sur plusieurs applications. J'utilise une sous-classe spéciale de listeView: xxx pré>

puis dans votre présentation, au lieu d'utiliser "S, utilisez quelque chose comme ceci: p>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <com.yourcompany.appname.views.NonScrollableListView
        android:id="@+id/listId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
</LinearLayout>


3 commentaires

Merci Jonathan. Cela rend la liste de la liste entièrement élargie, qui est quelque chose que je faisais avant aussi, bien que ce soit une façon meilleure et plus claire de le faire. Mais même maintenant, la vision de ScrollView ne fait pas défiler pour moi et je ne peux voir que des articles qui correspondent à l'écran.


@vaibhav, vous avez également défini une hauteur de 400 dP dans votre vision relative. Devrait-il être enveloppé_content de sorte qu'il y ait quelque chose à faire défiler dans la vue de défilement? En général, les vues de la vue de défilement doivent envelopper le contenu verticalement de manière à utiliser l'espace vertical supplémentaire offert par le ScrollView.


C'est correct. J'ai réalisé qu'hier et lui a corrigé. Merci d'avoir utilisé. Malheureusement, je n'ai pas assez de points de réputation pour uppouver votre réponse.



0
votes

Placez la liste de la liste sur un autre XML et incluez-la comme ceci ci-dessous xxx


0 commentaires

7
votes

Changer la hauteur de la vue de défilement de match_parent à envelopper_content. Parce que la vue de défilement permet uniquement de défilement si sa hauteur totale est supérieure à la hauteur de la vue parentale. I.E. Remplacez

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true">


4 commentaires

J'ai fait la hauteur de la mise en page et la largeur de "Wrap_Content". Toujours faire défiler ne fonctionne pas.


Changer la hauteur des mises en page linéaire également pour envelopper_content puis l'essayer.


J'avais fait ça. Mais il suffit de réaliser que la hauteur de la relativation qui a la liste de réception, a été corrigée. Changer-le à "Fill_Parent" a résolu le problème.


voir ma réponse dans le lien suivant stackoverflow.com/questions / 30282580 / ...