Reputation: 30385
I have a very weird issue with a FrameLayout
holding a ScrollView
. My layout looks like the following:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="50dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<...
/>
</FrameLayout>
The issue that I have is with the: layout_marginTop
attribute on the ScrollView
tag. It doesn't apply the same way accross different devices. For instance, on a Nexus S (running ICS) it is interpreted correctly by adding some space at the of the screen, but on another (Galaxy S2 running Gingerbread) it creates space at the bottom of the screen rather than the top of screen.
Any idea?
Thanks!
[EDIT]
It seems that the problem is common to all devices running an Android version lower than 3.0.
Thanks for noticing those non-sense extra attributes, it appears they were here because that FrameLayout
used to be wrapped inside LinearLayout
before.
Upvotes: 2
Views: 5125
Reputation: 30385
Fixed it by using android:paddingTop
on the ScrollView
instead of android:layout_marginTop
.
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_paddingTop="50dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<...
/>
</FrameLayout>
Upvotes: 1
Reputation: 2912
No use android:layout_gravity="center_vertical"
with android:layout_width="match_parent"
. This is no sense.
Try to use android:paddingTop="50dp"
in FrameLayout instead of android:layout_marginTop="50dp"
in ScrollView
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="50dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
</LinearLayout>
</ScrollView>
Upvotes: 2