#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 конечно, в этом суть! Но насколько широкий? Все зависит от меток, на разных языках ширина текстовых представлений может сильно отличаться, я не хочу ни пустого пространства, ни перекрытия…