Сделать текст плавающим справа в Android

Я пытаюсь достичь некоторого текстового макета в Android немного, как float="right" в HTML. У меня есть два пункта текста, которые можно найти в определенной области моего экрана. Я хотел бы, чтобы один из них был выровнен по левому краю в TextView, и один из них был выровнен по правому краю, как это (где | на обоих концах представляет собой контейнер-контейнер): –

 | First text item label | 

До сих пор это звучит просто: я мог бы сделать это с двумя TextView s в RelativeLayout , с правой стороны – layout_alignParentRight="true" или layout_gravity="right" . Но есть также случай, когда левый текст слишком длинный, чтобы вписаться в оставшееся пространство. С RelativeLayout он будет перекрывать правый текст, но я хочу, чтобы в этом случае он разбился на две строки:

 | This text is way too long | | label | 

И аналогично, если левый текст перетекает на несколько строк, я хочу, чтобы правый текст поместился на одну и ту же строку, если это возможно:

 | This text doesn't fit on | | one line label | 

Поскольку View s в Android всегда имеет прямоугольник, похоже, было бы невозможно сделать этот последний пример работой с двумя TextView даже если бы я написал пользовательский Layout . Я изучил использование Spannable чтобы я мог поместить весь текст в один TextView , но опять же, AlignmentSpan является ParagraphStyle , поэтому не похоже, что он сможет поместить метку в ту же строку, что и левая Текст таким образом. Есть ли какой-либо другой тип текста, который я могу использовать для достижения этого или даже совершенно другого метода?

На данный момент похоже, что мне придется либо поместить текст в HTML, либо использовать WebView (не очень хорошо, так как представление должно идти в элементе списка) или написать собственный виджет, подобный TextView .

Добавьте android:gravity="right" (не то же самое, что layout_gravity ) вправо, но также добавьте android:layout_alignBottom и обратитесь к id другого текстового вида. Multiline to true и т. Д. Предполагаю, что у вас уже есть. Поддерживайте alignParentRight и alignParentLeft соответственно.

Чтобы быть ясными, хотя они прямоугольные, они все равно могут перекрываться, если вы хотите, используя RelativeLayout (или FrameLayout т. Д.),

Альтернативный способ: попробуйте: swap android:layout_alignBottom="@id..." с android:layout_alignParentBottom="true" для правого текстового представления.

Получение третьего примера и второго примера для работы в то же время, хотя с помощью простого RelativeLayout, хм …

Intereting Posts
Разработка Android без использования Eclipse Как отключить свертывание ExpandableListView? Измерение производительности на Android Android Studio ТОЛЬКО! DexException: невозможно слить новый индекс 65536 в инструкцию без jumbo RdeJava's .debounce () вмешивается в мои потоки Observable и обработку ошибок Панель действий показывается некоторое время, прежде чем применять к ней пользовательский вид SQLiteOpenHelper: самый быстрый способ выполнить инструкции ~ 20k? Android – как предотвратить фрагмент от потери фокуса? Android: Окрашивание части строки с помощью TextView.setText ()? Как отправлять и получать SMS-сообщения от Android-приложения? Устройство ADB для Android запрещено Android RecyclerView Adapter Количество элементов возвращается 0 при модульном тестировании Изменение речевого голоса по умолчанию в тексте в речь на экранной опции внутри приложения Как получить поддерживаемую версию JNI для Android в устройстве? Проблема с Android с помощью настраиваемых тем