Короче говоря, можно ли указать ребенку в RelativeLayout
всегда соответствовать высоте этого RelativeLayout
, независимо от того, как ведут себя другие дети в том же RelativeLayout
?. Короче говоря, это. Подробности ниже.
То, что я пытаюсь достичь, - это строка ListView
с по меньшей мере тремя представлениями, и одно из этих представлений будет выглядеть как полоса с правой стороны от записи списка (красный вид ниже). Проблема, с которой я столкнулась, состоит в том, что с левой стороны находится TextView
и зависит от того, сколько текста у меня есть, полоса не заполняет весь макет. Это очень четко объяснено изображениями ниже.
ListView
расположение элементов:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<View
android:id="@+id/bottom_line"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_alignParentBottom="true"
android:background="#fc0" />
<!-- Why match_parent does not work in view below? -->
<View
android:id="@+id/stripe"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:background="#f00" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/stripe"
android:text="This is a very long line, meant to completely break the match_parent property of the box at right"
style="?android:textAppearanceLarge"/>
</RelativeLayout>
Результат:
Настройка полосы и высоты корня до match_parent
не имеет значения. Я сделал это.
Повторяя вопрос, я хочу, чтобы красная полоса всегда заполняла родительский элемент вертикально. Вы можете видеть, что полоса не совпадает с вершиной корня.
Примечание: приведенный выше пример является самым простым, самодостаточным примером, о котором я могу думать. Это просто ListActivity
с анонимным ArrayAdapter
, заполненным статическим массивом String
. Соответствующий код в onCreate
составляет не более 8 строк, поэтому не стоит беспокоиться. Это действительно макет. Кроме того, я уже работаю с вложенным LinearLayout
, но, если это возможно, я пытаюсь уменьшить глубину структуры макета. LinearLayout
работает нормально, как и ожидалось.