布局设计问题

时间:2011-05-14 06:44:01

标签: android layout

我正在设计布局但遇到了问题。不知何故,它在我的tablelayout右侧有一个空的空间,我无法填充它。如果有人有想法,那你能帮我吗?

下面是我的布局xml和截图,以显示究竟发生了什么;顺便说一句,我使用tablelayout的原因是为了使用与用户的交互来放置一些项目。

提前谢谢


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<LinearLayout android:id="@+id/header" android:layout_height="wrap_content" android:layout_width="match_parent">
    <TextView android:id="@+id/header_life_title" android:textSize="20sp" android:text="Life: " android:layout_height="wrap_content" android:layout_width="wrap_content"></TextView>
    <TextView android:id="@+id/header_life_value" android:textSize="20sp" android:text="20" android:layout_height="wrap_content" android:layout_width="wrap_content"></TextView>
    <Button android:text="Inc." android:id="@+id/header_btn_inc" android:layout_width="wrap_content" android:layout_height="35dp" android:layout_gravity="center_vertical">
    <Button android:text="Dec." android:id="@+id/header_btn_dec" android:layout_width="wrap_content" android:layout_height="35dp"></Button>
    <Button android:text="Put L." android:id="@+id/header_btn_putLand" android:layout_width="wrap_content" android:layout_height="35dp"></Button>
    <Button android:text="Remove L." android:id="@+id/header_btn_removeLand" android:layout_width="wrap_content" android:layout_height="35sp">
    <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/land_space">
    </LinearLayout>
</LinearLayout>
    <ScrollView android:id="@+id/scrollView1" android:layout_height="wrap_content" android:layout_width="match_parent">
        <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/cardboard">
            <LinearLayout android:layout_height="40dp" android:layout_width="match_parent" android:id="@+id/layout_menu">
                <Spinner android:id="@+id/spinner_creature" android:layout_height="wrap_content" android:layout_width="150dp"></Spinner>
                <Button android:id="@+id/btn_creature" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Cast"></Button>
                <Spinner android:id="@+id/spinner_noncreature" android:layout_height="wrap_content" android:layout_width="wrap_content"></Spinner>
                <Button android:id="@+id/btn_noncreature" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Cast"></Button>
                <Button android:id="@+id/btn_delete" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Del."></Button>
            </LinearLayout>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardImage"><![enter image description here][1]/TableRow>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardData"></TableRow>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardImage2"></TableRow>
            <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow_cardData2"></TableRow>
        </TableLayout>
    </ScrollView>
</LinearLayout>

http://imageshack.us/m/52/2443/111iyr.jpg

1 个答案:

答案 0 :(得分:1)

您可以使用LinearLayout的{​​{1}}属性强制其中的视图占用剩余空间。

为所有子视图设置layout_weight属性为 layout_weight 将使它们平均占用剩余空间:

"1"

子视图的宽度设置为<LinearLayout android:layout_height="40dp" android:layout_width="match_parent" android:id="@+id/layout_menu"> <Spinner android:id="@+id/spinner_creature" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="150dp"></Spinner> <Button android:id="@+id/btn_creature" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content" android:text="Cast"></Button> <Spinner android:id="@+id/spinner_noncreature" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content"></Spinner> <Button android:id="@+id/btn_noncreature" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content" android:text="Cast"></Button> <Button android:id="@+id/btn_delete" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content" android:text="Del."></Button> </LinearLayout> ,因此当您更改手机的方向时,即使父级具有更大的水平空间,它们也不会变宽。
使用wrap_content,您可以为每个子视图设置从父级剩余空间中填充多少的部分。

更多参考:LinearLayout.LayoutParams