RelativeLayout — ссылка на идентификаторы в другом вложенном представлении — возможно ли это?

Можно ли сделать что-то подобное, когда TV2 относится к TV1, где TV1 и TV2 находятся в разных ветвях макета?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:id="@+id/RV1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/TV01"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:text="test text" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/RV2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/RV1" >

        <TextView
            android:id="@+id/TV02"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/TV01"  <--------- this references TV01 within the top RelativeView !!!
            android:text="other text" />
    </RelativeLayout>

</RelativeLayout>

в этом примере оператор android:layout_toRightOf="@+id/TV01" не работает, так как TV01 находится в другой ветке RealtiveLayout, чем TV02.

Есть ли способ сделать такие ссылки?

Большое спасибо!


person user387184    schedule 15.07.2012    source источник
comment
Можете ли вы опубликовать изображение макета, которого вы пытаетесь достичь? Вполне вероятно, что вы можете добиться этого каким-то другим способом, отличным от того, который вы пытаетесь использовать (который, как вы обнаружили, не сработает).   -  person FoamyGuy    schedule 15.07.2012


Ответы (2)


Нет, вы не можете использовать позиционирование RelativeLayout таким образом. Однако:

  • Вы можете комбинировать RV1 и RV2

or

  • Вы можете расположить RV2 справа от RV1
person Sam    schedule 15.07.2012
comment
спасибо - я надеялся на какой-то путь, который можно было бы указать при определении зависимости - xml слишком ограничителен .... :-( - person user387184; 15.07.2012

Это упрощенный пример? или это ваш реальный макет. Если последнее, вы сможете добиться того же эффекта, изменив rel2 следующим образом:

<RelativeLayout
    android:id="@+id/RV2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/RV1"
    android:layout_toRightOf="@+id/RV1" >
person FoamyGuy    schedule 15.07.2012
comment
Вы хотели сохранить атрибут layout_below? Не будет ли эта позиция RV2 правее нижнего угла RV1 (по диагонали)? - person Sam; 15.07.2012
comment
Он поместит RV2 ниже и правее RV1, так что это будет похоже на нижний и правый кошачий угол. Судя по его коду, мне кажется, что он пытается это сделать. Трудно сказать наверняка, хотя без дополнительных разъяснений. - person FoamyGuy; 15.07.2012
comment
на самом деле это был упрощенный пример, спасибо за ответ. Наконец, похоже, что нельзя ссылаться внутри другого RV... - person user387184; 15.07.2012