按钮的简单位置

时间:2011-10-31 17:48:57

标签: android button textview

我将此布局用作对话框。问题是按钮出现在文本的右侧。我尝试使用填充,位置,重力使其显示在textview下但我失败了。 希望你能帮帮我....

     <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/layout_root"
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:padding="10dp"
      >
      <ImageView 
       android:id="@+id/image"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:layout_marginRight="10dp"
       />
      <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:textColor="#FFF"
      />

      <Button
      android:id="@+id/ok"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:text="ok"

      />
      </LinearLayout>

3 个答案:

答案 0 :(得分:2)

您在水平方向使用LinearLayout。这意味着它将按照您放置它们的顺序水平列出所有视图。

你显然想要文本旁边的图像,所以有两种方法可以做到这一点。您可以使用两个LinearLayouts。顶部垂直方向,内部水平方向。内部将包含图像和文本。外部将包含内部和按钮。

第二种方法是使用RelativeLayout,它允许您设置layout_below等属性,无论您将文本放在何处,都会将按钮放在文本下方。

使用两个LinearLayouts:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/layout_root"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:padding="10dp"
      >
     <LinearLayout
     android:id="@+id/linearLayout1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
     >
        <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:src="@drawable/ic_launcher" />
        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFF" />
     </LinearLayout>
     <Button
        android:id="@+id/ok"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ok"
      />
</LinearLayout>

使用RelativeLayout(更简单):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fil_parent"
    android:padding="10dp" >
        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:src="@drawable/ic_launcher" />
        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/image"
            android:layout_toRightOf="@id/image"
            android:text="@string/app_name"
            android:textColor="#FFF" />
        <Button
            android:id="@+id/ok"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/image"
            android:layout_below="@id/text"
            android:text="ok" />
</RelativeLayout>

答案 1 :(得分:1)

只需将其添加到LinearLayout

即可
android:orientation="vertical"

答案 2 :(得分:0)

如果您希望垂直堆叠的项目,则需要更改orientation的{​​{1}}属性。

尝试..

LinearLayout