Intereting Posts

Предотвращение перекрытия просмотров в RelativeLayout

Я пытаюсь разработать приложение для Android, но у меня возникают проблемы с дизайном графического интерфейса. Следующая часть снимка экрана – моя проблема (красные и синие линии были созданы с помощью параметров отладки Android).

моя проблема

Это код:

<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/caption" android:layout_below="@+id/caption" > <ImageButton android:id="@+id/button_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/content_edit" style="?android:attr/borderlessButtonStyle" /> <TextView android:id="@+id/myText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/num_placeholder" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout> 

Как вы можете видеть, TextView myText перекрывает кнопку ImageButton button_edit. Простое решение – использовать LinearLayout вместо RelativeLayout. Проблема в том, что:

  1. Мне нужна кнопка редактирования справа
  2. Мне нужен текст, чтобы заполнить остальную часть макета (очевидно, слева от кнопки редактирования)

Я также попытался установить layout_width myText в 'fill_parent', но он заполнит весь остальной экран слева от кнопки редактирования.

Ожидаемым поведением будет myText, чтобы увеличить его высоту (став двустрочным TextView) вместо перекрытия 'button_edit'

Может кто-нибудь мне помочь? благодаря

Использовать layout_toLeftOf в макете TextView

как это:

 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/caption" android:layout_below="@+id/caption" > <ImageButton android:id="@+id/button_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/content_edit" style="?android:attr/borderlessButtonStyle" /> <TextView android:id="@+id/myText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/num_placeholder" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_toLeftOf="@+id/button_edit" /> 

Другой способ – использовать атрибут android: layout_toEndOf

 <ImageButton android:id="@+id/button_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/content_edit" style="?android:attr/borderlessButtonStyle" android:layout_toEndOf="@+id/myText" /> <TextView android:id="@+id/myText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/num_placeholder" android:textAppearance="?android:attr/textAppearanceLarge" />