So my layout looks basically like this:
<ScrollView>
<RelativeLayout>
<BunchOfViews/>
<ImageView android:layout_alignParentBottom="true"/>
</RelativeLayout>
</ScrollView>
I have the ScrollView
so all of the layout always is visible no matter the height of the screen. The problem is that on a very high screen, I still want my ImageView
to be at the bottom. However, a child of a ScrollView
don't seem to have a defined bottom. The View
is placed at the top of the layout. How can I solve this problem in a neat way?
I had the same issue and found this page:
http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/
Basically, you set the ScrollView's
android:fillViewport
to true, which will allow the child view to expand to the same height as the ScrollView itself, filling out the space. You then just need to have one of the child controls'layout_height
set tofill_parent
andlayout_weight
to1
, causing that control to "spring" to fill the empty space.Note that if the contents of the ScrollView are already tall enough to fill the ScrollView, the
android:fillViewport
has no effect, so the setting only kicks in when needed.My final XML looks like similar to this:
its work for me perfectly android:fillViewport="true"
I ran into the same issue. I never could find a very pleasing solution, but here is how I did it. Maybe someone else has a better way, I hate adding layouts that don't do anything.
My hack was to add a dummy linearlayout at the bottom of the scrollview that has fill_parent to take up all the room and force the scrollview to fill the screen. Then add whatever component I want to that linearlayout.
Here is one of my layouts that does this:
On your view that you want to be at the bottom use android:gravity="bottom"
it seems that the linearlayout isn't necessary, all that is important is the fillViewPort. you could just use
now that you have specified the relativelayout to be at least the size of the screen.