在我的项目中,我有一个带4个按钮的视图。我有一个相对布局来正确放置它们。问题是我希望按钮能够填满整个屏幕而不会消失,我不想为它们设置固定大小,以确保按钮适合任何屏幕尺寸。现在我唯一可以看到的是一个大按钮,因为RelativeLayout没有android:layout_weight
。我怎么能做到这一点?这就是我得到的:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/search_icon"
android:background="@drawable/search_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<Button
android:id="@+id/categories_icon"
android:background="@drawable/categories"
android:layout_toRightOf="@+id/search_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<Button
android:id="@+id/green_icon"
android:background="@drawable/green_icon"
android:layout_below="@+id/search_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<Button
android:id="@+id/red_icon"
android:background="@drawable/red_icon"
android:layout_toRightOf="@+id/green_icon"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>
答案 0 :(得分:2)
嗯,这似乎比我想象的要容易......我想你正在寻找这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_>
<Button android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="1" />
<Button android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="2" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
<Button android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="3" />
<Button android:id="@+id/button4"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="4" />
</LinearLayout>
尝试一下,看起来应该是这样的:
答案 1 :(得分:1)
这是你在找什么?
以下是我为此布局所做的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:text="BUTTON 1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<Button
android:text="BUTTON 2"
android:layout_toRightOf="@+id/search_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:text="BUTTON 3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
/>
<Button
android:text="BUTTON 4"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
/>
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
关于RelativeLayout的事情是你必须告诉itens放在哪里。例如:
<Button android:id="@+id/buyTicket"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Buy ticket"
android:layout_above="@id/LinearLayout02" />
<ImageView android:id="@+id/logo"
android:src="@drawable/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/buyTicket" />
注意android:layout_above =“@ id / buyTicket”。 如果你想要按钮B顶部的按钮A,你首先声明按钮A(例如),将它对齐到父母的顶部,然后在按钮B声明,你说你想要它在按钮A下。
在你的情况下,你必须声明按钮A,B,C和D,然后在按钮A中设置android:layout_alignParentTop="true"
,然后在B,C和D上设置android:layout_bellow
(到之前的那个)他们)。并且不要忘记将高度和宽度设置为wrap_content
。
答案 3 :(得分:0)
如果您遇到以下任何问题,请阅读此人的博客:http://blog.stylingandroid.com/
很多例子,并且很好地解释了重量等事情。