2010-11-23 8 views
11

Tengo 3 vistas de texto en un diseño, donde el texto muestra un poco en la parte inferior de mi droid 2 ... ¿Cómo puedo asegurarme de que todo el texto se puede ver y el usuario puede desplazarse hacia abajo (simplemente con el dedo) , para ver el resto de mi texto?Si ScrollView solo admite un elemento secundario directo, ¿cómo se supone que puedo hacer que todo el diseño se pueda desplazar?

Gracias!

EDIT:

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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <ImageButton android:id="@+id/ImageButton01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/def" 
    android:layout_gravity="top|center"> 
    </ImageButton> 

<TextView android:id="@+id/oneView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/one_def" 
android:layout_gravity="left|center" 
android:textSize="13dip"></TextView> 

<TextView android:text="@string/two_def" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="left|center" 
android:id="@+id/twoView" 
android:textSize="13dip"></TextView> 

<TextView android:text="@string/threedef_def" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="left|center" 
android:id="@+id/threeView" 
android:textSize="13dip"></TextView> 


</LinearLayout> 

Respuesta

26

Simplemente ajuste su LinearLayout actual con ScrollView. Entonces debería ser así:

<?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"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <ImageButton ... /> 
     <TextView ... /> 
     <TextView ... /> 
     <TextView ... /> 

    </LinearLayout> 
</ScrollView> 
10

El hijo directo de ScrollView debe ser otro diseño que es compatible con varios niños, como RelativeLayout o LinearLayout.

+0

¿Puedo encapsular una aleta entera como vista de desplazamiento? – Sapp

+0

No lo creo, ya que la aleta en sí no es lo que desea desplazarse. Desea desplazar el contenido de los miembros flipper. Recuerde que algunas vistas en Android ya son desplazables, más notablemente ListView; sin embargo, si está utilizando vistas o lienzos que no son de desplazamiento, debe asignar múltiples vistas de desplazamiento a su flipper. –

+0

Estoy realmente confundido: edité en mi xml para ver si podía mostrarme lo que hay que hacer para hacer que este diseño sea desplazable si fuera demasiado grande para la pantalla – Sapp

2

Funcionó perfectamente.

Aquí está mi diseño como un ejemplo de desplazamiento de un elemento de contenido con dos encabezados encima que permanecen estacionarios.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
android:id="@+id/mainMenu" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:background="#FFFFFFFF" 
xmlns:android="http://schemas.android.com/apk/res/android" 
> 
    <FrameLayout 
    android:id="@+id/widget112" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 
     <ImageView 
     android:id="@+id/chemo_pro_header" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/chemo_pro_header" 
     > 
     </ImageView> 
     <ImageButton 
     android:id="@+id/menu_btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/menu_btn_off" 
     android:background="@null" 
     android:layout_gravity="right" 
     android:padding="8px" 
     > 
     </ImageButton> 
    </FrameLayout> 
    <ImageView 
    android:layout_width="wrap_content" 
    android:id="@+id/news_head" 
    android:src="@drawable/news_head" 
    android:layout_height="wrap_content"> 
    </ImageView> 
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
      <TextView android:layout_marginLeft="6dip" android:text="Monday, November 29th, 2010" android:id="@+id/newsDateStamp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:typeface="serif" android:textStyle="italic" android:textColor="#ff999999"></TextView> 
      <TextView android:layout_marginLeft="6dip" android:text="Normal Article Titles Fit on These Lines and have room to be this long" android:textSize="16sp" android:typeface="serif" android:textStyle="bold" android:textColor="#ff000000" android:id="@+id/newsTitle" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
      <TextView android:layout_marginLeft="6dip" android:text="Article source" android:id="@+id/newsSource" android:layout_width="wrap_content" android:layout_height="wrap_content" android:typeface="serif" android:textStyle="italic" android:textColor="#ff999999"></TextView> 
      <ImageView 
      android:layout_width="wrap_content" 
      android:id="@+id/news_image" 
      android:src="@drawable/news_image" 
      android:layout_height="wrap_content" android:layout_gravity="center"> 
      </ImageView> 
      <TextView android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras in volutpat enim. Donec tempus vestibulum risus in pellentesque. Etiam eget lorem at velit facilisis dapibus.\n\nNunc dolor sem, semper vel vestibulum eu, ultrices tempus augue. Donec ligula erat, tempor dignissim imperdiet et, rutrum sed nisi. Praesent dignissim nulla ullamcorper metus facilisis auctor. Duis elementum commodo dictum. Duis rhoncus hendrerit lectus in tincidunt. Ut est neque, rutrum ut auctor ac, aliquet ut massa. Nullam at felis ipsum. Curabitur adipiscing sodales massa, sed lobortis lectus ultrices quis. Integer lobortis cursus tellus sed tempus. Ut convallis ullamcorper interdum. Integer iaculis feugiat ultricies.\n\nNunc dolor sem, semper vel vestibulum eu, ultrices tempus augue. Donec ligula erat, tempor dignissim imperdiet et, rutrum sed nisi. Praesent dignissim nulla ullamcorper metus facilisis auctor. Duis elementum commodo dictum. Duis rhoncus hendrerit lectus in tincidunt. Ut est neque, rutrum ut auctor ac, aliquet ut massa." android:layout_marginTop="6dip" android:layout_marginBottom="6dip" android:typeface="serif" android:id="@+id/newsBody" android:layout_marginLeft="6dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#ff000000" android:layout_marginRight="6dip"></TextView> 
    </LinearLayout> 
    </ScrollView> 
</LinearLayout> 
0

si desea desplazar toda la disposición simplemente hacer ScrollView los padres y hacer la disposición lineal o toda otra disposición que su primer hijo y luego añadir otros diseños dentro de esa .... ejemplo:

<scrollview> 
    <linearLayout id = child1> 
    <Textview/> 
    <Textview/> 
    <button/> 
    <LinearLayout> 
     <textview/> 
    </LinearLayout 
    </LinearLayout> 
</scrollview 

aquí, la vista de desplazamiento tiene solo un elemento secundario 'child1', todos están dentro y, por lo tanto, se puede desplazar todo el diseño

Cuestiones relacionadas