开发者

How do I make Views fill the full width of their parent in my Android app?

开发者 https://www.devze.com 2022-12-22 19:48 出处:网络
I have the following layout defined for one of my Activities: <?xml version=\"1.0\" encoding=\"utf-8\"?>

I have the following layout defined for one of my Activities:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <TableRow android:id="@+id/TableRow01" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <EditText android:text="Resource Name" android:id="@+id/ResourceName" android:lines="1" android:isScrollContainer="false"></EditText>
    </TableRow>
    <TableRow android:id="@+id/TableRow02" android:layout_height="wrap_content" android:开发者_Python百科layout_width="fill_parent">
        <Button android:id="@+id/Tile" android:text="Tile"></Button>
    </TableRow>
</TableLayout>

The layout renders almost correctly, the only problem is that my text box and my button aren't occupying the full width of their respective rows.

I've tried specifying fill_parent for the layout width properties, but to no avail, they still only occupy roughly half of the screen.

Documentation overall for Android so far has been great, but there are a few scenarios like this one where I hit an invisible wall! Thanks for all the help!


Try using android:stretchColumns="0" (when you define the TableLayout) or what ever is the index of the column that you would want to stretch.

For more information - http://developer.android.com/guide/tutorials/views/hello-tablelayout.html


Use android:layout_width="match_parent" in your tableRow views.

Now you have different possibilities in your TableLayout seting the parameter android:stretchColumns to:

Value "*" views will have same width and will fill the row occupying the same space

Value "0" or other integer -> First or element corresponding with the integer in a row will fill the row. The other view will have width in a same way of wrap_content

Example with a tablelayout of 3 tableRow with 2 views each:

Without setting android:stretchColumns:

[|TextView|EditText|          ]
[|TextView|EditText|          ]
[|TextView|EditText|          ]

android:stretchColumns="*"

[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]

android:stretchColumns="0"

[|    TextView      |EditText|]
[|    TextView      |EditText|]
[|    TextView      |EditText|]

android:stretchColumns="1"

[|TextView|      EditText    |]
[|TextView|      EditText    |]
[|TextView|      EditText    |]


Try this in the definition of your TableRow :

<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
0

精彩评论

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