Amokrane Chentir
Amokrane Chentir

Reputation: 30385

ScrollView inside FrameLayout layout margin's issue

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 ScrollViewtag. 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]

Upvotes: 2

Views: 5125

Answers (3)

Amokrane Chentir
Amokrane Chentir

Reputation: 30385

Fixed it by using android:paddingTop on the ScrollViewinstead 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

Oleksii Masnyi
Oleksii Masnyi

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

josephus
josephus

Reputation: 8304

try android:fillViewPort=true

Upvotes: 1

Related Questions