Per prima cosa, non riuscivo a mettere un RelativeLayout contenuto in una ScrollView che mi riempisse tutto lo schermo.
Ripercorro le tappe.
Il codice iniziale era questo:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/scrollView" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.laboratorio1322016.MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="200dp" android:id="@+id/textView1" android:text="fanculo" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="300dp" android:id="@+id/textView2" android:text="@string/hello_world" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="700dp" android:id="@+id/textView3" android:text="Ciao, ciccio bello!" /> </RelativeLayout> </ScrollView>...e il risultato è questo:
Provo a mettere nel codice di ScrollView android:fillViewport=true":
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:id="@+id/scrollView" >
<RelativeLayout
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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:background="@color/celeste"
tools:context="com.example.laboratorio1322016.MainActivity" >
<TextView
android:background="@color/nero"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="0dp"
android:id="@+id/textView1"
android:text="fanculo" />
<TextView
android:background="@color/nero"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="200dp"
android:id="@+id/textView2"
android:text="@string/hello_world" />
<TextView
android:background="@color/nero"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="400dp"
android:id="@+id/textView3"
android:text="Ciao, ciccio bello!" />
</RelativeLayout>
</ScrollView>
...e proviamo il risultato:
Ma modificando l'altezza della ScrollView, le cose cambiano.
Cambio da match_parent a wrap_content:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:id="@+id/scrollView" >
<RelativeLayout
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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:background="@color/celeste"
tools:context="com.example.laboratorio1322016.MainActivity" >
<TextView
android:background="@color/nero"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="0dp"
android:id="@+id/textView1"
android:text="fanculo" />
<TextView
android:background="@color/nero"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="200dp"
android:id="@+id/textView2"
android:text="@string/hello_world" />
<TextView
android:background="@color/nero"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="400dp"
android:id="@+id/textView3"
android:text="Ciao, ciccio bello!" />
</RelativeLayout>
</ScrollView>
e il risultato torna:
Quindi impostare android:fillViewport="true" non è sufficiente: l'altezza della ScrollView deve essere impostata anche a android:layout_height="match_parent".
Invece l'altezza del RelativeLayout figlio della ScrollView può essere impostata sia a match_parent sia a wrap_content, senza che il risultato cambi.
Provo anche a settare l'altezza del RelativeLayout a un valore determinato:
<RelativeLayout
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="300dp"
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:background="@color/celeste"
tools:context="com.example.laboratorio1322016.MainActivity" >
e il risultato è sempre quello:
...Okay!
Nessun commento:
Posta un commento