如何在xml中设置TableRow的宽度

时间:2014-09-09 21:16:09

标签: android xml tablerow

我希望TableRow的宽度达到手机屏幕的宽度。 我的代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="fill_horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TabHost
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </TabWidget>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <LinearLayout
                android:id="@+id/tab1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                <TableLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >

                    <TableRow
                        android:id="@+id/TableRow01"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true"
                        android:layout_gravity="center"
                        android:gravity="fill" 
                        android:visibility="gone">

                        <Button
                            android:id="@+id/Button01"
                            android:layout_width="48dp"
                            android:layout_height="48dp"
                            android:background="@drawable/ic_action_search"
                            android:onClick="search" />

                        <EditText
                            android:id="@+id/EditText01"
                            android:layout_width="wrap_content"
                            android:layout_height="48dp"
                            android:layout_gravity="fill_horizontal"
                            android:ems="10"
                            android:hint="Employer?date?program?"
                            android:inputType="textMultiLine" />
                    </TableRow>
                </TableLayout>

                <ListView
                    android:id="@+id/taboneviewlist"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1" >
                </ListView>
            </LinearLayout>


</TabHost>

结果如下(黑色矩形): enter image description here 搜索图标的宽度加上edittext的宽度不等于手机的宽度。 为什么呢?

谢谢

我使用以下代码解决了这个问题:

                        <TableRow
                        android:id="@+id/TableRow01"
                        android:layout_width="match_parent"
                        android:layout_height="48dp"
                        android:layout_gravity="center"       
                        android:gravity="fill" 
                        android:visibility="gone">

                        <Button
                            android:id="@+id/Button01"
                            android:layout_weight="0.1"
                            android:layout_height="match_parent"
                            android:background="@drawable/ic_action_search"
                            android:onClick="search" />

                        <EditText
                            android:id="@+id/EditText01"
                            android:layout_gravity="fill_horizontal"
                            android:layout_weight="0.9"
                            android:layout_height="match_parent"
                            android:hint="Employer?date?program?"/>
                    </TableRow>

2 个答案:

答案 0 :(得分:2)

似乎将layout_width切换为“match_parent”应修复它。它也可能与inputType为“textMultiLine”有关。

                   <EditText
                        android:id="@+id/EditText01"
                        android:layout_width="match_parent"
                        android:layout_height="48dp"
                        android:layout_gravity="fill_horizontal"
                        android:ems="10"
                        android:hint="Employer?date?program?"
                        android:inputType="textMultiLine" />

答案 1 :(得分:0)

                    <TableRow
                        android:id="@+id/TableRow01"
                        android:layout_width="match_parent"
                        android:layout_height="48dp"
                        android:layout_gravity="center"       
                        android:gravity="fill" 
                        android:visibility="gone">

                        <Button
                            android:id="@+id/Button01"
                            android:layout_weight="0.1"
                            android:layout_height="match_parent"
                            android:background="@drawable/ic_action_search"
                            android:onClick="search" />

                        <EditText
                            android:id="@+id/EditText01"
                            android:layout_gravity="fill_horizontal"
                            android:layout_weight="0.9"
                            android:layout_height="match_parent"
                            android:hint="Employer?date?program?"/>
                    </TableRow>