Выровнять по наибольшему элементу в относительном описании

#android #android-layout #android-relativelayout

#Android #android-layout #android-relativelayout

Вопрос:

Я разрабатываю простой макет с использованием RelativeLayout, я хотел бы избежать вложенных линейных описаний или других вложенных групп просмотра.
Есть 9 просмотров, все это отображается следующим образом:

введите описание изображения здесь

Я не знаю, как правильно выровнять панели поиска, чтобы избежать перекрытия текста или переноса строк.
Выравнивание справа: ширина изображений rgb фиксирована, ширина панелей поиска (все та же) зависит от ширины надписей, я хочу, чтобы она зависела от самой большой.
Как узнать, на какую метку ссылаться с помощью android:layout_toRightOf или что?

На приведенном выше изображении также показаны два поведения, которых я хотел бы избежать:
-выравнивание относится к первой метке (@id / text1) —
2-я строка: android:layout_alignRight отсутствует, чтобы создать более длинное текстовое перекрытие.
3-я строка: android:layout_alignRight присутствует, но более длинный текст переносится.

Вот что я хотел бы:

введите описание изображения здесь

Должен ли я измерить ширину TextViews, чтобы найти самый большой (программно, конечно …)?

Есть идея для решения XML?

Вот код:

 <RelativeLayout
    android:id="@ id/addon"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="@color/semi_transparent_background_controls"
    android:visibility="visible" >

    <TextView
        android:id="@ id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@ id/seek1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Normal text"/>

    <SeekBar
        android:id="@ id/seek1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@ id/img1"
        android:layout_toRightOf="@id/text1"/>

    <ImageView
        android:id="@id/img1"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@drawable/img1"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@ id/seek2"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/img1"
        android:text="Longer text overlaps"/>

    <SeekBar
        android:id="@ id/seek2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/seek1"
        android:layout_alignParentLeft="false"
        android:layout_alignTop="@ id/img2"
        android:layout_below="@id/seek1"
        android:layout_toLeftOf="@id/img2"/>

    <ImageView
        android:id="@id/img2"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@drawable/img2"
        android:layout_alignParentRight="true"
        android:layout_below="@id/img1"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@ id/seek3"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@ id/text1"
        android:layout_below="@id/img2"
        android:text="or wraps to a new line"/>

    <SeekBar
        android:id="@ id/seek3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/seek1"
        android:layout_alignParentLeft="false"
        android:layout_alignTop="@ id/img3"
        android:layout_below="@id/seek2"
        android:layout_toLeftOf="@id/img3"/>

    <ImageView
        android:id="@id/img3"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:src="@drawable/img3"
        android:layout_alignParentRight="true"
        android:layout_below="@id/img2"
        />

</RelativeLayout>   
  

Комментарии:

1. Не уверен на 100%, но что, если вы выровняете по правому краю все текстовые представления, а затем расположите по правому краю панели поиска?

2. @GabeSechan вы имеете в виду gravity =»right» для всех текстовых представлений?

3. Попробуйте исправить ширину панели поиска.

4. @Haresh конечно, в этом суть! Но насколько широкий? Все зависит от меток, на разных языках ширина текстовых представлений может сильно отличаться, я не хочу ни пустого пространства, ни перекрытия…