RelativeLayout: нельзя использовать layout_below со ссылкой на дочерний элемент LinearLayout? - PullRequest
1 голос
/ 10 февраля 2011

У меня есть RelativeLayout, который имеет LinearLayout как дочерний элемент, содержащий TextViews.

Я бы хотел разместить ImageViews справа от TextViews с layout_alignRight = "@ id / userdetail_tv_special", но почему-то это не работает.

Не могу ли я "связать" ребенкаRelativeLayout для дочернего элемента LinearLayout?Любые идеи, как я мог бы достичь этого, не создавая другой RelativeLayout для каждой кнопки?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
    <LinearLayout
        android:id="@+id/userdetail_lin_btncontainer"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:layout_below="@id/userdetail_lin_divider" 
        android:padding="6dp" >
        <TextView
            android:id="@+id/userdetail_tv_special"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="Special"
            android:background="#cccccc" />
        <!-- here are more TextViews like this one -->
    </LinearLayout>
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@id/userdetail_tv_special"
        android:src="@drawable/ic_detail_special" />
        <!-- much more views and stuff -->
</RelativeLayout>

Ответы [ 2 ]

3 голосов
/ 10 февраля 2011

Мне показалось бы логичным, что вы не можете указать на «слой» глубже: вы можете расположить дочерние элементы RelativeLayout друг относительно друга, но вы LinearLayout - это полное представление, которое вы можете использовать в качестве ссылки.

Если вы хотите иметь возможность позиционировать представления относительно текстового представления, разместите их как прямые дочерние элементы относительного макета. Кстати, я не понимаю, зачем вам нужен LinearLayout.

0 голосов
/ 10 февраля 2011
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
  <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imgview"
    android:src="@drawable/ic_detail_special" />

<LinearLayout
    android:id="@+id/userdetail_lin_btncontainer"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:layout_below="@id/userdetail_lin_divider" 
   android:layout_alignLeft="@id/imgview"
    android:padding="6dp" >
    <TextView
        android:id="@+id/userdetail_tv_special"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Special"
        android:background="#cccccc" />
    <!-- here are more TextViews like this one -->
</LinearLayout>

      <!-- much more views and stuff -->

...