2010-08-05 12 views
139

Después de iniciar la actividad, no puedo desplazarme hacia abajo para ver otros botones y opciones en el xml definido a continuación.Cómo hacer que un LinearLayout pueda desplazarse

¿Alguien sabe cómo hacer esto desplazable?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:background="#000044" 
android:isScrollContainer="true" 
android:orientation="vertical"> 
<TextView 
    android:id="@+id/title" 
    android:text="@string/title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#ffffff"/> 
<EditText 
    android:id="@+id/editTitle" 
    android:text="" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/> 
<TextView 
    android:id="@+id/description" 
    android:text="@string/description" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#ffffff"/> 
<EditText 
    android:id="@+id/editDescription" 
    android:text="" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/> 
<TextView 
    android:id="@+id/location" 
    android:text="@string/location" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#ffffff"/> 
<EditText 
    android:id="@+id/editLocation" 
    android:text="" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/> 
<TextView 
    android:id="@+id/startTime" 
    android:text="@string/startTime" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#ffffff"/> 
<DatePicker 
    android:id="@+id/DatePicker01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
<TimePicker 
    android:id="@+id/TimePicker01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
<TextView 
    android:id="@+id/endTime" 
    android:text="@string/endTime" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#ffffff"/> 
<DatePicker 
    android:id="@+id/DatePicker02" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
<TimePicker 
    android:id="@+id/TimePicker02" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
<Button 
    android:id="@+id/buttonCreate" 
    android:text="Create" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
</LinearLayout> 

Mi código de clase es

package com.example.blah; 

import android.app.Activity; 
import android.os.Bundle; 

public class example extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

La salida es http://img265.imageshack.us/img265/7601/linearlayout.jpg

+0

Posible duplicado de [¿Cómo se puede desplazar LinearLayout?] (Http://stackoverflow.com/questions/4055537/how-do-you-make-a-linearlayout-scrollable) – Flow

Respuesta

204

Coloque el diseño de una ScrollView.

+0

¡Respuesta perfecta! – Sana

+6

Se trata de efectos secundarios, como la imposibilidad de colocar elementos desplazables dentro de una vista de desplazamiento, como una vista de lista. – JoaoFilipeClementeMartins

+2

Debe evitar el contenido desplazable dentro del contenido desplazable. A los usuarios no les gusta (nunca se sabe qué desplazamiento se moverá). – Guillaume

62
<?xml version="1.0" encoding="utf-8"?> 
<ScrollView ...> 

<LinearLayout ...> 

... 
... 

</LinearLayout> 

</ScrollView> 
15

poner todo su contenido en la disposición lineal que se coloca dentro de ScrollView.

ScrollView toma solo un diseño como su hijo.

isScrollContainer="true" 

Esta propiedad se utiliza cuando su tecla programable en Android aparece y todavía desea que su vista se desplace.

2

Puede implementarlo usando View.scrollTo(..) también.

postDelayed(new Runnable() { 
      public void run() { 

       counter = (int) (counter + 10); 
       handler.postDelayed(this, 100); 

        llParent.scrollTo(counter , 0); 
       } 

      } 
     }, 1000L); 
54
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center|left" 
     android:orientation="vertical"> 

     Your views go here... 

    </LinearLayout> 

</ScrollView> 
2

que puede hacer cualquier diseño desplazable. Poco menos de <?xml version="1.0" encoding="utf-8"?> añadir estas líneas:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

y al final añadir </ScrollView>

ejemplo de una actividad no desplazable:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:verticalScrollbarPosition="right" 
    tools:context="p32929.demo.MainActivity"> 


    <TextView 
     android:text="TextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="102dp" 
     android:id="@+id/textView" 
     android:textSize="30sp" /> 
</RelativeLayout> 

Después de lo que es desplazable, se convierte de esta manera:

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     android:verticalScrollbarPosition="right" 
     tools:context="p32929.demo.MainActivity"> 


     <TextView 
      android:id="@+id/textView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="102dp" 
      android:text="TextView" 
      android:textSize="30sp" /> 
    </RelativeLayout> 
</ScrollView> 
1

Coloque todos sus diseños dentro de un ScrollView con ancho y h ocho establecido en fill_parent.

+0

Su respuesta parece un comentario en lugar de una respuesta. Una vez que tenga suficiente [reputación] (http://stackoverflow.com/help/whats-reputation) podrá [comentar] (http://stackoverflow.com/help/privileges/comment) en cualquier publicación. También verifique esto [qué puedo hacer en su lugar] (https: //meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). Si tenía la intención de dar una respuesta, lea este [cómo-responder] (http://stackoverflow.com/help/how-to-answer) para proporcionar una respuesta de calidad. – thewaywewere

+0

fill_parent ya obsoleto y reemplazado con match_parent –

Cuestiones relacionadas