Android TextView и Button бок о бок, эллипсовый левый TextView

У меня есть выравнивание по левому краю TextView и выравнивание по правому краю кнопки бок о бок. Я хочу, чтобы кнопка занимала столько места, сколько ей нужно справа (в зависимости от текста, который идет в ней), и левого текста, чтобы заполнить столько, сколько он может, и эллипсизировать при любом переполнении.

|Long title that may or may not ellipsi... <Button with text>| 

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

Это мой код LinearLayout (с ненужными деталями), где я даю левому TextView layout_weight из 1 и кнопку layout_weight из 0. Это должно дать правой кнопке все необходимое пространство и предоставить TextView остальным, Но вместо этого левый заголовок перестает отображаться, а правая кнопка размалывается в сторону и отключается. Я попытался заменить ширину текста и кнопки на 0dip, как я видел, предложил, что ничего не меняет.

 <LinearLayout android:layout_height="@dimen/title_bar_height" android:layout_width="fill_parent" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ellipsize="end" android:layout_gravity="left|center_vertical" android:gravity="left|center_vertical" android:textSize="22sp" android:lines="1"/> <include layout="@layout/action_buttons" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0"/> </LinearLayout> 

Замена layout_weight из TextView на 0 фактически позволяет правой кнопке правильно поместиться на экране полностью, но левый текст по-прежнему не отображается. Если у меня есть layout_weights, равный 0 для TextView и кнопки, а затем меняю ширину TextView с 0dip на wrap_content, все появляется, но вместо этого кнопка сжимается, чтобы заполнить оставшееся пространство (и текст внутри усечен).

Вот моя попытка с RelativeLayout:

 <RelativeLayout android:layout_height="@dimen/title_bar_height" android:layout_width="wrap_content"> <include layout="@layout/action_buttons"/> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_vertical" android:layout_alignParentLeft="true" android:layout_toLeftOf="@layout/action_buttons" android:gravity="center_vertical" android:scaleType="center" android:textSize="22sp" android:ellipsize="end" android:lines="1"/> </RelativeLayout> 

Все выравнивается отлично и отображается, за исключением того, что левый TextView (когда он слишком длинный) перекрывается и появляется поверх кнопки, а не усекает и эллипсирует. Не следует андроид: layout_toLeftOf "@ layout / action_buttons" указать, что TextView должен оставаться на левой границе кнопки?

Я пробовал, казалось бы, все, что я могу найти на этом сайте, связанные с этой проблемой, и я до сих пор не могу получить решение. Любая помощь будет принята с благодарностью!

Это поможет вам:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:layout_weight="1" android:ellipsize="end" android:gravity="left|center_vertical" android:singleLine="true" android:text="Some really long textttttttttt tooooooooooo make the ellipsize work in the preview" android:textSize="22sp" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button Text" /> </LinearLayout> 

Вот как выглядит при запуске: Более короткая кнопка

И снова с кнопкой с большим текстом: Более длинная кнопка