如何在屏幕底部获取独立于中间选项卡内容的按钮?

时间:2013-11-10 12:50:43

标签: android listview button tabs footer

我在listview下方的屏幕底部设置了一组按钮。但我无法完全在底部得到它,因为我正在定义listview的高度(tabcontent)在中间,如果我没有预定义tabcontent的高度它将覆盖按钮,如果我定义它将搞乱按钮位置在不同的屏幕分辨率那么我怎样才能真正实现屏幕底部的按钮独立于中间标签内容呢?以下是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/formLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="0dp">

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true" />

            <View
                android:id="@+id/separator"
                android:layout_width="fill_parent"
                android:layout_height="2dip"
                android:layout_below="@android:id/tabs" />

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="465dip"
                android:layout_above="@+id/btnSend"
                android:layout_below="@+id/separator" >

                <!-- Scrollview for message data -->

                <ScrollView
                    android:id="@+id/formTab"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:scrollbars="vertical" >

                    <LinearLayout
                        android:id="@+id/formLayout"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical" >

                        <View
                            android:layout_width="fill_parent"
                            android:layout_height="5dip" />
                    </LinearLayout>
                </ScrollView>
            </FrameLayout>
        </RelativeLayout>
    </TabHost>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/tabcontent"
        >

        <Button
            android:id="@+id/home"
            android:layout_width="wrap_content"
            android:layout_height="50dip"
            android:layout_weight="1"
            android:text="Home"
            android:textColor="#000000" />

        <Button
            android:id="@+id/messages"
            android:layout_width="wrap_content"
            android:layout_height="50dip"
            android:layout_weight="1"
            android:text="Messages"
            android:textColor="#000000"/>

        <Button
            android:id="@+id/history"
            android:layout_width="wrap_content"
            android:layout_height="50dip"
            android:layout_weight="1"
            android:text="History"
            android:textColor="#000000" />

        <Button
            android:id="@+id/settings"
            android:layout_width="wrap_content"
            android:layout_height="50dip"
            android:layout_weight="1"
            android:text="Settings"
            android:textColor="#000000" />

        <Button
            android:id="@+id/support"
            android:layout_width="wrap_content"
            android:layout_height="50dip"
            android:layout_weight="1"
            android:text="Support"
            android:textColor="#000000" />
    </LinearLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

带按钮的LinearLayout位于另一个LinearLayout内。

您所要做的就是将根布局更改为RelativeLayout,然后使用按钮的LinearLayout参数android:layout_alignParentBottom="true"将起作用。

此外,您应该使根RelativeLayout填充父级。

整个布局如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/formLayout"
    android:layout_width="fill_parent"
    android:layout_height="match_parent" >

<TabHost
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="0dp">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true" />

        <View
            android:id="@+id/separator"
            android:layout_width="fill_parent"
            android:layout_height="2dip"
            android:layout_below="@android:id/tabs" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="465dip"
            android:layout_above="@+id/btnSend"
            android:layout_below="@+id/separator" >

            <!-- Scrollview for message data -->

            <ScrollView
                android:id="@+id/formTab"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:scrollbars="vertical" >

                <LinearLayout
                    android:id="@+id/formLayout"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <View
                        android:layout_width="fill_parent"
                        android:layout_height="5dip" />
                </LinearLayout>
            </ScrollView>
        </FrameLayout>
    </RelativeLayout>
</TabHost>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_below="@+id/tabcontent"
    >

    <Button
        android:id="@+id/home"
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:layout_weight="1"
        android:text="Home"
        android:textColor="#000000" />

    <Button
        android:id="@+id/messages"
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:layout_weight="1"
        android:text="Messages"
        android:textColor="#000000"/>

    <Button
        android:id="@+id/history"
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:layout_weight="1"
        android:text="History"
        android:textColor="#000000" />

    <Button
        android:id="@+id/settings"
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:layout_weight="1"
        android:text="Settings"
        android:textColor="#000000" />

    <Button
        android:id="@+id/support"
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:layout_weight="1"
        android:text="Support"
        android:textColor="#000000" />
</LinearLayout>