按钮调整大小问题。 Android的

时间:2011-01-28 15:33:14

标签: android

在我的项目中,我有一个带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>

4 个答案:

答案 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>

尝试一下,看起来应该是这样的:

Android screen with 4 buttons

答案 1 :(得分:1)

这是你在找什么? enter image description here

以下是我为此布局所做的代码:

<?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/

很多例子,并且很好地解释了重量等事情。