2

我正在为我的应用程序创建一个 XML 布局,我需要在文本下方对齐一个按钮,但是因为我使用 LinearLayout 将一些文本与属性权重水平对齐,所以按钮保持在不同的布局中,现在我定义了属性“ android:layout_below" 并且它没有找到文本的 ID。那么,有人有什么建议可以在不使用 Java 的情况下解决这个问题吗?

这是我的代码:

<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" >

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="3" >

<TextView
    android:id="@+id/text1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="text1"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/text2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="text2"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/text3"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="text3"
    android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/text1"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/text1"
    android:gravity="center"
    android:text="Button" />

</RelativeLayout>

编辑:按钮必须与 对齐text1,想法是使用三个属性:align_left、align_right 和 align_below,因此按钮具有与文本相同的宽度。我还有其他的观点来设置文本的属性。

4

1 回答 1

0

您可以为 LinearLayout 设置 id:

<LinearLayout 
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="3" >

并将按钮放在布局下使用

android:layout_below="@+id/text"

要在第一个文本下对齐按钮,您可以将 text1 和按钮与垂直线性布局括起来:

<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="wrap_content" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:weightSum="3" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="text1"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Button" />

</LinearLayout>

   <TextView
      android:id="@+id/text2"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:gravity="center"
      android:text="text2"
      android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
      android:id="@+id/text3"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:gravity="center"
      android:text="text3"
      android:textAppearance="?android:attr/textAppearanceLarge" />

   </LinearLayout>

  </RelativeLayout>
于 2012-10-19T23:46:10.963 回答