[英]Buttons in RelativeLayout fill screen width
如您在上面看到的,我在RelativeLayout
有四行Buttons
。 如何使Buttons
均匀覆盖屏幕宽度?
我尝试了各种方法,但没有任何效果:我尝试将RelativeLayout
宽度设置为match_parent
,并使所有Button's
layout_width
= fill_parent
以及fill_parent
所有东西。
有任何想法吗?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Game" >
<RelativeLayout
android:id = "@+id/rl"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
>
<Button
android:id="@+id/button0"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button1"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_toRightOf="@+id/button0"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button2"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_toRightOf="@+id/button1"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button3"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_toRightOf="@+id/button2"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
...
...
...
<Button
android:id="@+id/button12"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_below="@+id/button8"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button13"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_below="@+id/button9"
android:layout_toRightOf="@+id/button12"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button14"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_below="@+id/button10"
android:layout_toRightOf="@+id/button13"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button15"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_below="@+id/button11"
android:layout_toRightOf="@+id/button14"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
</RelativeLayout>
</RelativeLayout>
最好的方法是具有四个垂直线性布局,每个布局均包含其按钮在水平线性布局中。 确保所有按钮的宽度均为fill_parent
然后将权重属性设置为使LinearLayouts width = match_parent的每个属性,并设置Buttons layout_weight =“ 1”使LinearLayouts width = match_parent的按钮设置为Button 1,如下所示:
android:layout_weight = "1"
确保线性布局的宽度也设置为match_parent
基本上,这会增加权重并将屏幕宽度划分为按钮之间。
您的问题的解决方案是权重。
希望这可以帮助。 快乐的编码:)
PS:如果此回答您的问题,请将其标记为正确答案
您可以获取屏幕尺寸并使用它们来确定按钮的尺寸
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
然后使用这些尺寸确定按钮的尺寸(每个尺寸都是宽度除以4)
随便摆弄一下应该可以让您到达想要的地方
为什么不连续使用LinearLayout
和weight
属性? 可能是这样的:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Game" >
<RelativeLayout
android:id = "@+id/rl"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
>
<LinearLayout
android:id="@+id/ll_row_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button0"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:layout_weight="1"
android:tag="0"/>
<Button
android:id="@+id/button1"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_weight="1"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button2"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:layout_weight="1"
android:tag="0"/>
<Button
android:id="@+id/button3"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:layout_weight="1"
android:tag="0"/>
</LinearLayout>
...
...
...
<LinearLayout
android:id="@+id/ll_row_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/ll_row_3">
<Button
android:id="@+id/button12"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:layout_weight="1"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button13"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_weight="1"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button14"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_weight="1"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
<Button
android:id="@+id/button15"
android:layout_width="@dimen/size"
android:layout_height="@dimen/size"
android:layout_weight="1"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
如果不起作用,请尝试将按钮的android:layout_width
属性设置为0dp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.