Простое положение кнопки - PullRequest
0 голосов
/ 31 октября 2011

Я использую этот макет в качестве диалога.Проблема в том, что кнопка появляется справа от текста. Я попытался с отступом, положением, гравитацией, чтобы она появилась под текстовым обзором, но мне не удалось.Надеюсь, вы можете помочь мне ....

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

2 голосов
/ 31 октября 2011

Вы используете 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 голос
/ 31 октября 2011

Просто добавьте это к LinearLayout:

android:orientation="vertical"
0 голосов
/ 31 октября 2011

Если вы хотите, чтобы элементы располагались вертикально, вам нужно изменить свойство orientation LinearLayout.

Попробуйте ..

android:orientation="vertical"
...