web-dev-qa-db-fra.com

Android scrollview masquant le contenu supérieur dans la mise en page

J'ai un problème où le Android scrollview commence à cacher une paire de vues de texte que j'ai en haut de ma mise en page, j'ai trouvé une autre personne sur ce site même qui a eu ce problème et a pu obtenir aider malheureusement la personne qui les a aidés n'a pas vraiment dit ce qui le corrige, quelqu'un peut-il me dire quel était le correctif ici?

Android scrollview cachant le contenu supérieur

toute aide serait énorme voici mon code xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@color/title_color_dark_transparent" >

<LinearLayout
    Android:layout_width="fill_parent"
    Android:layout_height="match_parent"
    Android:layout_gravity="center_vertical|center_horizontal|center"
    Android:orientation="vertical" >

    <LinearLayout
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_gravity="center"
        Android:layout_marginLeft="8dp"
        Android:layout_marginRight="8dp"
        Android:layout_marginTop="5dp"
        Android:orientation="vertical"
        Android:paddingTop="5dp" >

        <TextView
            Android:id="@+id/saysomething"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:text="@string/loading"
            Android:textColor="#FFFFFF"
            Android:textSize="30dp" />

        <TextView
            Android:id="@+id/saysomethinginfo"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_marginBottom="5dp"
            Android:text="@string/loading"
            Android:textColor="#FFFFFF"
            Android:textSize="17dp" />

        <EditText
            Android:id="@+id/tweetedittext"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:background="@drawable/edit_text"
            Android:gravity="top"
            Android:hint="@string/edittext_hint"
            Android:inputType="textCapSentences|textMultiLine|textAutoCorrect|textAutoComplete"
            Android:lines="3"
            Android:textAppearance="@style/TextAppearance.EditText"
            Android:textSize="17dp" />

        <RelativeLayout
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:layout_marginBottom="5dp"
            Android:layout_marginTop="5dp"
            Android:orientation="horizontal" >

            <Button
                Android:id="@+id/photobutton"
                style="@style/TextAppearance.Button"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:background="@drawable/button_background"
                Android:onClick="photobuttonClicked"
                Android:text="@string/photobuttontext"
                Android:textSize="15dp" />

            <TextView
                Android:id="@+id/charactersremaining"
                Android:layout_width="wrap_content"
                Android:layout_height="fill_parent"
                Android:layout_centerInParent="true"
                Android:layout_toLeftOf="@+id/posttweetbutton"
                Android:text="@string/characters"
                Android:textColor="#FFFFFF"
                Android:textSize="20dp" />

            <Button
                Android:id="@id/posttweetbutton"
                style="@style/TextAppearance.Button"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_alignParentRight="true"
                Android:layout_marginLeft="2dp"
                Android:background="@drawable/button_background"
                Android:onClick="posttweetbuttonClicked"
                Android:text="@string/postbuttonstext"
                Android:textSize="15dp" />
        </RelativeLayout>
    </LinearLayout>

    <TextView
        Android:id="@+id/photodetails"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text=""
        Android:textColor="#FFFFFF"
        Android:textSize="17dp"
        Android:layout_marginTop="8dp"
        Android:layout_marginLeft="8dp" />

    <ImageView
        Android:id="@+id/iv_pic"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="8dp"
        Android:layout_marginRight="8dp" />
</LinearLayout>

</ScrollView>
37
Edmund Rojas

Je l'ai trouvé! C'est le Android:layout_gravity="center" dans le LinearLayout qui est le coupable. Supprimez simplement cela et tout devrait bien se passer.

105
Sylphe

Avez-vous essayé de régler

Android: fillViewport = "true"

dans ScrollView?

<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
  xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"
  Android:layout_width="fill_parent"
  Android:layout_height="fill_parent"
  Android:fillViewport="true"
  Android:background="@color/title_color_dark_transparent" >
5
dwbrito

Vous pouvez faire défiler par programme.

  1. Supprimer la propriété Android: layout_gravity de xml
  2. Ajouter le défilement à la fonction onResume

Du code de mon projet:

protected void onResume() {
    super.onResume();
    final HorizontalScrollView svInMenu = (HorizontalScrollView) findViewById(R.id.svInMenu);
    ViewTreeObserver vto = svInMenu.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        public void onGlobalLayout() {
            svInMenu.scrollTo(svInMenu.getRight() / 4, 0);
        }
    });
}
1
user2636104

Votre LinearLayout externe a sa hauteur définie sur match_parent. Ça devrait être wrap_content au lieu. Le LinearLayout intérieur doit également avoir la hauteur wrap_content.

0
kabuko

Ajoutez Android: layout_weight = "1" à votre vue de défilement. Cela résoudra le problème. Quelque chose comme ça

 <ScrollView
        Android:id="@+id/scroll"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" Android:layout_weight="1" >
0
Joseph Selvaraj