开发者

scrollview inside linearlayout forces buttons offscreen

I'm trying to build an activity that has a checkbox on top, a button at the bottom, and a bunch of other widgets scrolling in between. Conceptually that's

LinearLayout

CheckBox

ScrollView

LinearLayout

[stuff]

LinearLayout-end

ScrollView-end

Button

LinearLayout-end

When it renders I get the checkbox at the top, the stuff scrolling nicely underneath, but the Button drawn offscreen (I assume) below the ScrollView. The only way I can get the Button to be visible is to hard-code the height of the ScrollView, which of course only works on one screen-size. I've tried all combinations of gravity and layout_weight I can think of to no avail. Am I using the right combination of Views? Anybody managed to get this working?

(I don't think 开发者_JAVA百科RelativeLayout is quite the right container for this, but regardless I hope to avoid it since it's broken on 1.5.)

Thanks,

--Eric


I had the same problem recently and I added:

<ScrollView 
    ...
    android:layout_weight="1" >

that solved my problem.


I've used this in 2.2, not sure if the layout_above and layout_below tags are available in 1.5 (if thats what your using). Layout your three main elements, the header, the footer and your central content (in this case a list view) that you want to fill the remaining area with.

You could replace the Listview with a scrollView if you wanted, or any component for that matter.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <Button
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Top Button"/>
    <Button
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="Button"/>

    <ListView
        android:id="@android:id/center"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/header"
        android:layout_above="@id/footer"/>
    </RelativeLayout>

Note the order of your elements. Not sure its relevant but the center element is defined last.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜