开发者

Getting Views to fit

开发者 https://www.devze.com 2023-02-13 18:32 出处:网络
I have a main.xml with a LinearLayout with three items inside, LinearLayout, ListView and LinearLayout开发者_StackOverflow. I would like the ListView to be as big as possible while keeping the bottom

I have a main.xml with a LinearLayout with three items inside, LinearLayout, ListView and LinearLayout开发者_StackOverflow. I would like the ListView to be as big as possible while keeping the bottom LinearLayout always showing and not shrunk or knocked off the screen.

I have tried making the ListView height fillparent, but then the bottom LinearLayout doesn't show up, same with wrapcontent, since the ListView has lots of content.

When I make the ListView a set size, say 300dp, I have space below the bottom LinearLayout. I tried to fix this by making the top level LinearLayout gravity=fill, but that didn't help.

Also, depending on the android I try it on, the bottom LinearLayout will drop off the screen, or get shrunk. In case it's relevant, the top level LinearLayout is set to fillparent for height. My goal is to keep the top and bottom LinearLayout to wrap their content, and the middle ListView fill what's left... any suggestions? Thanks in advance for your efforts!


I believe you can just add android:layout_weight="1" to the ListView, with the ListView set to a height of fill_parent, and the two LinearLayouts set to wrap_content. Regardless, I usually prefer to use a RelativeLayout. You can specify the header to align to the top of the screen, the footer to align to the bottom, and the ListView to fill the space in between, like so:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        >
        //...insert stuff here
    </LinearLayout>

    <LinearLayout
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        >
        //...insert stuff here
    </LinearLayout>

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

精彩评论

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