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