Я пытаюсь развернуть представление, которое должно обернуть его содержимое, но оно должно быть не более чем на ~ 100dp меньше его родительской ширины. Как я могу это сделать с помощью RelativeLayout или другого макета? То, что у меня сейчас, всегда будет выглядеть на 100dp меньше, чем у его родителя, так что есть место для другого представления.
Это изображение является примером того, что у меня есть:
Как вы можете видеть, текст не заполняет весь ящик, поэтому он может быть меньше. Но он никогда не должен быть больше, чем на 100dp меньше, чем его родитель, так что есть место для времени отправки сообщения.
Это мой макет.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingRight="@dimen/horizontalMargin"
android:paddingTop="10dp">
<TextView
android:id="@+id/message_holder"
android:layout_toLeftOf="@id/blank"
android:layout_alignParentLeft="true"
android:layout_marginLeft="@dimen/horizontalMargin"
android:background="@drawable/message_corners"
style="@style/white_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="alsdkjf; alsdkf" />
<RelativeLayout
android:id="@+id/blank"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_alignParentRight="true"
android:minWidth="100dp">
</RelativeLayout>
<TextView
android:minWidth="100dp"
android:id="@+id/time"
style="@style/gray_text"
android:layout_toRightOf="@id/message_holder"
android:paddingLeft="10dp"
android:text="Yesterday,\n11:30 PM" />
<RelativeLayout
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignBottom="@id/message_holder"
android:layout_alignParentLeft="true"
android:background="@drawable/triangle" />
</RelativeLayout>
Я попытался использовать свойство "minWidth" в пустом представлении справа от окна сообщения, чтобы обеспечить интервал, но размер не изменяется больше (что сделает окно сообщения меньше). Когда у меня нет пустого представления и просто поставьте время TextView справа от окна сообщения, тогда TextView не будет виден, когда окно сообщения будет расширяться.
Update:
Это мой "message_corners.xml":
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/green" >
</solid>
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" >
</padding>
<corners
android:radius="10dp">
</corners>
</shape>
Обновление 2:
Это то, что я ищу в макете с коротким текстом:
И это то, что я ищу в макете с длинным текстом: