表中的按钮看起来是wrap_content,应该是match_parent

时间:2015-04-19 18:22:15

标签: android android-tablelayout

我有两个相同活动的布局。这个用于横向,应该有两行按钮,每行有两个按钮(2X2网格),底部有横幅广告。一切都正确定位,但按钮仍然设置为layout_content为layout_width。无论文字如何,我希望它们的大小都相同。

我在表格中添加了一个边框,我可以看到它是match_parent,但按钮的宽度都是每列中最宽的按钮。我希望他们都填充表格的单元格,表格应该填充父窗口。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<TableLayout
    android:layout_width="match_parent"
    android:id="@+id/table_options"
    android:layout_height="fill_parent"
    android:paddingBottom="10dp"
    android:paddingTop="10dp"
    android:layout_centerHorizontal="true">

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/table_border">
    <Button
        android:id="@+id/main_activity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="1dip"
        android:paddingLeft="6dip"
        android:paddingRight="6dip"
        android:paddingTop="1dip"
        android:onClick="onHuntClick"
        android:drawableLeft="@drawable/ic_hunt"
        style="@style/button_style"
        android:text="@string/main_activity" />

    <Button
        android:id="@+id/other_lists"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="1dip"
        android:paddingLeft="6dip"
        android:paddingRight="6dip"
        android:paddingTop="1dip"
        android:onClick="onListsClick"
        android:drawableLeft="@drawable/ic_listit"
        style="@style/button_style"
        android:text="@string/other_lists" />
</TableRow>
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/table_border">

    <Button
        android:id="@+id/web_site"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="1dip"
        android:paddingLeft="6dip"
        android:paddingRight="6dip"
        android:paddingTop="1dip"
        android:onClick="onWebClick"
        android:drawableLeft="@drawable/ic_email_color"
        style="@style/button_style"
        android:text="@string/email_vendor" />


    <Button
        android:id="@+id/invite"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="1dip"
        android:paddingLeft="6dip"
        android:paddingRight="6dip"
        android:paddingTop="1dip"
        android:onClick="onInviteClick"
        android:drawableLeft="@drawable/ic_invite"
        style="@style/button_style"
        android:text="@string/invite" />
    </TableRow>
</TableLayout>
<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/main_ad_unit_id">
</com.google.android.gms.ads.AdView>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

这有用吗?

<RelativeLayout xmlns:ads="http://schemas.android.com/apk/res-auto"
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingBottom="@dimen/activity_vertical_margin"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/main_ad_unit_id">
    </com.google.android.gms.ads.AdView>

    <LinearLayout
        android:id="@+id/table_options"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/adView"
        android:layout_centerHorizontal="true"
        android:orientation="vertical"
        android:paddingBottom="10dp"
        android:paddingTop="10dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/table_border"
            android:orientation="horizontal">

            <Button
                android:id="@+id/main_activity"
                style="@style/button_style"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableLeft="@drawable/ic_hunt"
                android:onClick="onHuntClick"
                android:paddingBottom="1dip"
                android:paddingLeft="6dip"
                android:paddingRight="6dip"
                android:paddingTop="1dip"
                android:text="@string/main_activity"/>

            <Button
                android:id="@+id/other_lists"
                style="@style/button_style"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableLeft="@drawable/ic_listit"
                android:onClick="onListsClick"
                android:paddingBottom="1dip"
                android:paddingLeft="6dip"
                android:paddingRight="6dip"
                android:paddingTop="1dip"
                android:text="@string/other_lists"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/table_border"
            android:orientation="horizontal">

            <Button
                android:id="@+id/web_site"
                style="@style/button_style"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableLeft="@drawable/ic_email_color"
                android:onClick="onWebClick"
                android:paddingBottom="1dip"
                android:paddingLeft="6dip"
                android:paddingRight="6dip"
                android:paddingTop="1dip"
                android:text="@string/email_vendor"/>


            <Button
                android:id="@+id/invite"
                style="@style/button_style"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:drawableLeft="@drawable/ic_invite"
                android:onClick="onInviteClick"
                android:paddingBottom="1dip"
                android:paddingLeft="6dip"
                android:paddingRight="6dip"
                android:paddingTop="1dip"
                android:text="@string/invite"/>
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>

基本上我所做的是将两个按钮放在一个水平方向的LinerLayout中,其宽度等于parent,并给每个参数weight =&#34; 1&#34;。这意味着它们将具有相同的宽度(父级的50%)。如果你想要一个宽度是另一个宽度的两倍,你可以使用weight =&#34; 2&#34;在一个,另一个将得到重量=&#34; 1&#34;