Android ScrollView no desplazamiento

Me han resuelto mi pregunta. Decidí en lugar de tener un encabezado y un pie de página que se encuentra siempre en la parte inferior y la parte superior de la pantalla, respectivamente. A continuación, he creado un «centro de contenido», que yo encerrado dentro de un ScrollView diseño. He actualizado el código de abajo si la gente está interesada en ver lo que ahora parece.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:background="#FFFFFF">

    <LinearLayout android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@layout/header"
        android:layout_alignParentTop="true">
        <ImageView android:src="@drawable/logo"
            android:contentDescription="@string/logo_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dip"/>
    </LinearLayout>

    <ScrollView android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="350dip"
        android:layout_below="@id/header">
        <LinearLayout android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="20dip" >
            <!--  Email Label -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="#372C24"
                android:text="@string/email"/>
            <EditText android:id="@+id/email_field"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dip"
                android:singleLine="true"
                android:inputType="textEmailAddress"/>
            <!--  Password Label -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dip"
                android:textColor="#372C24"
                android:text="@string/password"/>
            <EditText android:id="@+id/password_field"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:inputType="textPassword"/>
            <!-- Login button -->
            <Button android:id="@+id/login_button"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dip"
                android:text="@string/login"/>
            <!-- Register button -->
            <Button android:id="@+id/register_button"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dip"
                android:text="@string/register_button"/>
        </LinearLayout>
    </ScrollView>

    <LinearLayout android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="90dip"
        android:background="@layout/footer"
        android:layout_alignParentBottom="true">
    </LinearLayout>

</RelativeLayout>
InformationsquelleAutor Justin Papez | 2012-12-28

5 Kommentare

  1. 5

    Para mí, quitar android:windowSoftInputMode="adjustPan" de la <activity> etiqueta en AndroidManifest.xml archivo resuelto el problema.

    • Esta solucionado mi problema 🙂 Gracias!
    • Me pregunto ¿cuál es la alternativa si quiero utilizar el atributo!
  2. 1

    He quitado esta línea de la AndroidManifest.xml archivo

    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

    y añade esta línea

    android:theme="@android:style/Theme.NoTitleBar"

    ha solucionado mi desplazamiento aplicación e hizo que mi aplicación un aspecto más atractivo a la vista. Sin embargo, no estoy seguro de si esta es la correcta revisión.

  3. -1

    para mí, el problema era que el LinearLayout en el ScrowView había android:layout_height=»wrap_content».

    <ScrollView android:id="@+id/scroll_view1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true" >
    
    <LinearLayout android:id="@+id/layout_inside"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" --> This should not we wrap_content, but specific height.
        android:orientation="vertical" >
    • De acuerdo a Android directrices, android:layout_height atributo de la primera (y única) ScrollView los niños siempre deben ser «wrap_content«. Usted recibirá un paño que no deje de advertencia si utiliza match_parent.
  4. -2

    El ScrollView no funciona cuando se utiliza como elemento raíz de un XML de diseño.
    Tiene que ser envuelto dentro de un LinearLayout.

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    <ScrollView android:id="@+id/scroll_view1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true" >
    
        <LinearLayout android:id="@+id/layout_inside"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

    Tener una diversión ! !

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea