Pregunta

Hi I am trying to create a layout which is going to contain a couple of image views a button and some text but the problem is that the layout is not scrollable. any idea of how I could implement that ? Many thanks in advance.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

   <ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="204dp"
    android:scaleType="fitXY"
    android:src="@drawable/pic11elit" android:contentDescription="ss"/>

   <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="whatever"
    android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:textAppearance="?android:attr/textAppearanceMedium" />

  <TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Reservation No :27210 10020"
    android:textAppearance="?android:attr/textAppearanceMedium" />
         <Button
    android:id="@+id/On_back"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="73dp"
    android:layout_height="wrap_content"
    android:onClick="On_back"
    android:text="back" />
      </LinearLayout>
¿Fue útil?

Solución

Try as below...

<?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="wrap_content"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="204dp"
            android:contentDescription="ss"
            android:scaleType="fitXY"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="whatever"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Reservation No :27210 10020"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
            android:id="@+id/On_back"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="73dp"
            android:layout_height="wrap_content"
            android:onClick="On_back"
            android:text="back" />
    </LinearLayout>

</ScrollView>

Otros consejos

You can use a view called 'ScrollView'. Use this as your parent view.
Also keep these points in your mind :
- A ScrollView is a FrameLayout, meaning you should place one child in it containing the entire contents to scroll; this child may itself be a layout manager with a complex hierarchy of objects.
- You should never use a ScrollView with a ListView, because ListView takes care of its own vertical scrolling. Most importantly, doing this defeats all of the important optimizations in ListView for dealing with large lists, since it effectively forces the ListView to display its entire list of items to fill up the infinite container supplied by ScrollView.
- ScrollView only supports vertical scrolling. For horizontal scrolling, use HorizontalScrollView.

More can be find out here; http://developer.android.com/reference/android/widget/ScrollView.html

Very simple. You have to use a scrollable layout. Example:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/foo"
        android:layout_width="wrap_content"
        android:textAlignment="viewStart"
        android:layout_height="wrap_content" />
</ScrollView>

Dude just add to your root layout a Scrollable VIew

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ScrollView
   <ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="204dp"
    android:scaleType="fitXY"
    android:src="@drawable/pic11elit" android:contentDescription="ss"/>

   <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="whatever"
    android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:textAppearance="?android:attr/textAppearanceMedium" />

  <TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Reservation No :27210 10020"
    android:textAppearance="?android:attr/textAppearanceMedium" />
         <Button
    android:id="@+id/On_back"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="73dp"
    android:layout_height="wrap_content"
    android:onClick="On_back"
    android:text="back" />
 </ScrollView>
      </LinearLayout>

ScrollView can have only one child! It will be OK to put your parent LinearLayout in ScrollView:

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

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

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="204dp"
            android:scaleType="fitXY"
            android:src="@drawable/pic11elit"
            android:contentDescription="ss" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="whatever"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Reservation No :27210 10020"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
            android:id="@+id/On_back"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="73dp"
            android:layout_height="wrap_content"
            android:onClick="On_back"
            android:text="back" />
    </LinearLayout>
</ScrollView>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top