我有两个相同活动的布局。这个用于横向,应该有两行按钮,每行有两个按钮(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>
答案 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;