2010-11-22 11 views
24

Oye todo: ¿es posible hacer desplazable un diseño lineal completo cuando debe serlo? (cuando todos los elementos en el diseño no caben en la pantalla principal)?¿Cómo hacer un diseño lineal desplazable?

Sé que es factible con vistas, etc ... pero ¿hay alguna manera de incorporar todo en el diseño para ser desplazable al mismo tiempo?

Quizás desplazable no es el término correcto ... básicamente - si uno de los elementos (un botón en este caso) no lo hace completamente en la pantalla principal del teléfono y tengo que deslizar un dedo hacia abajo para acceda a él ... si eso tiene sentido.

Respuesta

55

Una LinearLayout es una subclase de Vista, por lo que cualquier cosa que pueda hacer con una Vista puede hacerlo con un Diseño Lineal.

Entonces sólo tiene que utilizar ScrollView con una sola LinearLayout como un niño

10

sí se puede hacer que toda su vista desplazable utilizando ScrollView pero ya que sólo puede contener un elemento secundario principal, por lo que tendrá que añadir otra LinearView Visión dentro ScrollView y pon tus otros puntos de vista dentro de esto.

-Main Ver

- ScrollView

--- LinearView

---- Sub Ver 1

---- Sub Ver 2

- - Vista secundaria 3

....

27

Sólo a modo de ejemplo de lo que los otros chicos están hablando de

<?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:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center|left" 
     android:orientation="vertical" > 

     Here is your layout! 

    </LinearLayout> 

</ScrollView> 
1

usted 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> 
Cuestiones relacionadas