RelativeLayout堆栈按钮

时间:2012-08-19 14:42:09

标签: android android-layout xamarin.android

我想在包含在线性布局内的相对布局的底部对齐两个按钮。

我无法将查看收藏夹按钮置于搜索按钮的顶部。您可以在此图片中看到一个很大的空间:

enter image description here

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
    android:text="@string/SearchRestaurantsCity"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/tvRestaurantSearchCity" />
<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/etRestaurantSearchCity" />
<TextView
    android:text="@string/SearchRestaurantsState"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/tvRestaurantSearchState" />
<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/etRestaurantSearchState" />
<TextView
    android:text="@string/SearchRestaurantsCategories"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/tvRestaurantSearchCategories" />
<Spinner
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/spRestaurantSearchCategories" />
<RelativeLayout
    android:id="@+id/InnerRelativeLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentBottom="true">
    <Button
        android:text="@string/btnViewFavoriteRestaurants"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnViewFavoriteRestaurants"
        style="@style/ButtonText"
        android:padding="5dp"
        android:layout_below="btnSearchRestaurants" />
    <Button
        android:text="@string/btnSearchRestaurants"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnSearchRestaurants"
        style="@style/ButtonText"
        android:layout_alignParentBottom="true"
        android:padding="5dp" />
</RelativeLayout>

4 个答案:

答案 0 :(得分:2)

XML有两个问题。

对于初学者,在定义之前不能引用按钮btnSearchRestaurants

其次,您已将btnSearchRestaurants定义为align-parent-bottom,然后尝试定义btnViewFavoriteRestaurants将位于该按钮下方。它应该高于它(根据你的描述)。

答案 1 :(得分:0)

我认为问题出在

android:layout_below="btnSearchRestaurants"

应该是

android:layout_below="@id/btnSearchRestaurants"

答案 2 :(得分:0)

如果您尝试将第一个按钮放在RelativeLayout中,我会尝试更改以下行:

android:layout_below =“btnSearchRestaurants”/&gt;

这个:

android:layout_above =“@ + id / btnSearchRestaurants”/&gt;

部分空间是为我在LinearLayout中可以看到的布局的所有元素保留的,+是因为按钮btnSearchRestaurants在下面所以它还没有被创建

答案 3 :(得分:0)

在您的xml代码中,我认为您应该更正此行

android:layout_below="btnSearchRestaurants"

如您所希望它位于“搜索餐厅”按钮上方,它应该是

android:layout_above="@id/btnSearchRestaurants"

由于显而易见的原因,我将下面的内容更改为上面(您希望它位于不在其下方的其他按钮上方)并添加@ id /,因为您将搜索按钮ID。