2011-01-31 1007 views
38

Soy nuevo en el desarrollo de aplicaciones de Android. Ahora estoy diseñando una aplicación, ya que tengo un Activity que contiene algo de contenido pero este contenido es algo más para que el contenido esté fuera de la pantalla. Ahora quiero mostrarle ese contenido al usuario, pero no sé cómo mantener los scrollers en el Activity.¿Cómo agregar la barra de desplazamiento al diseño relativo?

¿Cómo mostrar el contenido total al usuario final con la rueda de desplazamiento usando RelativeLayout?

Respuesta

84

hola, consulte el siguiente código de ejemplo del archivo xml.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <RelativeLayout 
     android:id="@+id/RelativeLayout01" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

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

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="20dip" 
       android:text="@+id/TextView01" > 
      </TextView> 
     </LinearLayout> 
    </RelativeLayout> 

</ScrollView> 
+5

'RelativeLayout'is exceso en esta vista de jerarquía, la OMI. –

5

Quiere encerrarlo con un scrollView.

5

Comprobar el archivo de diseño siguiente ejemplo

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/ScrollView01" android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:background="@color/white"> 
<RelativeLayout android:layout_height="fill_parent" 
    android:layout_width="fill_parent"> 
    <ImageView android:id="@+id/image1" 
     android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
     android:layout_marginLeft="15dip" android:layout_marginTop="15dip" 
     android:src="@drawable/btn_blank" android:clickable="true" /> </RelativeLayout> </ScrollView> 
2

El siguiente código debe hacer el truco:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/ScrollView01" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<RelativeLayout 
android:id="@+id/RelativeLayout01" 
android:layout_width="fill_parent" 
android:layout_height="638dp" > 

<TextView 
    android:id="@+id/textView1" 
    style="@style/normalcode" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="64dp" 
    android:text="Email" /> 

<TextView 
    android:id="@+id/textView2" 
    style="@style/normalcode" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView1" 
    android:layout_marginTop="41dp" 
    android:text="Password" /> 

<TextView 
    android:id="@+id/textView3" 
    style="@style/normalcode" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/textView2" 
    android:layout_below="@+id/textView2" 
    android:layout_marginTop="47dp" 
    android:text="Confirm Password" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/textView1" 
    android:layout_alignBottom="@+id/textView1" 
    android:layout_alignParentRight="true" 
    android:layout_toRightOf="@+id/textView4" 
    android:inputType="textEmailAddress" > 

    <requestFocus /> 
</EditText> 

<EditText 
    android:id="@+id/editText2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/textView2" 
    android:layout_alignBottom="@+id/textView2" 
    android:layout_alignLeft="@+id/editText1" 
    android:layout_alignParentRight="true" 
    android:inputType="textPassword" /> 

<EditText 
    android:id="@+id/editText3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/textView3" 
    android:layout_alignBottom="@+id/textView3" 
    android:layout_alignLeft="@+id/editText2" 
    android:layout_alignParentRight="true" 
    android:inputType="textPassword" /> 


<TextView 
    android:id="@+id/textView4" 
    style="@style/normalcode" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/textView3" 
    android:layout_marginTop="42dp" 
    android:text="Date of Birth" /> 

<DatePicker 
    android:id="@+id/datePicker1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/textView4" /> 

<TextView 
    android:id="@+id/textView5" 
    style="@style/normalcode" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/datePicker1" 
    android:layout_marginTop="60dp" 
    android:layout_toLeftOf="@+id/datePicker1" 
    android:text="Gender" /> 

<RadioButton 
    android:id="@+id/radioButton1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/textView5" 
    android:layout_alignBottom="@+id/textView5" 
    android:layout_alignLeft="@+id/editText3" 
    android:layout_marginLeft="24dp" 
    android:text="Male" /> 

<RadioButton 
    android:id="@+id/radioButton2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/radioButton1" 
    android:layout_below="@+id/radioButton1" 
    android:layout_marginTop="14dp" 
    android:text="Female" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="23dp" 
    android:layout_toLeftOf="@+id/radioButton2" 
    android:background="@drawable/rectbutton" 
    android:text="Sign Up" /> 

14

acaba de poner su RelativeLayout en el interior ScrollView

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    ------- here RelativeLayout ------ 
</ScrollView> 
0

ScrollView añade automáticamente una barra de desplazamiento si sus contenidos son más de su capacidad (como cuando se está escribiendo en un cuadro de texto y de repente barra de desplazamiento aparece cuando el tamaño de texto es más grande que su tamaño inicial. pero tenga en cuenta que algunos contenedores (por ejemplo, vista de lista) tienen barra de desplazamiento ellos mismos y pueden no funcionar cuando los coloca en scrollview.

1

he utilizado la

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/ScrollView01" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<RelativeLayout 

y funciona perfectamente

Cuestiones relacionadas