2016-11-18 12 views
0

Я просмотрел множество сообщений по аналогичной теме, но не смог найти ответ на эту проблему ... Я использую RelativeLayout, чтобы иметь кнопку слева, кнопку справа и текст посередине. Если текст слишком длинный, я использую ellipsize (см. XML ниже). Проблема в том, что когда текст длинный, он также сокращает НАЧАЛО кода (см. Изображение). Я могу исправить это, используя андроид: gravity = «center_vertical» вместо «center», но затем, когда текст короткий, он становится левым. Я хочу, чтобы это было сосредоточено. Любой намек?В режиме эллипсирования в андроиде между кнопками

<RelativeLayout 
    android:layout_height="60dp" 
    android:layout_width="match_parent" > 
    <ImageButton 
     android:id="@+id/leftbutton" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_alignParentLeft="true" 
     android:layout_gravity="center" 
     android:src="@drawable/back_chevron_icon" 
     android:background="@color/transparent" /> 
    <ImageButton 
     android:id="@+id/rightbutton" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_alignParentRight="true" 
     android:layout_gravity="center" 
     android:src="@drawable/back_chevron_icon" 
     android:background="@color/transparent" /> 
    <TextView 
     android:id="@+id/sometext" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:gravity="center" 
     android:layout_toRightOf="@id/leftbutton" 
     android:layout_toLeftOf="@id/rightbutton" 
     android:maxLines="1" 
     android:ellipsize="end" 
     android:textSize="22dp" 
     android:text="Long Long Long Long Long Long Long Long Text" /> 
</RelativeLayout> 

with android:gravity:"center_vertical

То, что я хочу, показано на рисунках ниже 2. Я могу добиться этого только путем изменения силы тяжести от центра к центру и наоборот.

long text ok

shor text ok

+0

попробуйте использовать 'android: layout_width =" wrap_content "' for textView –

+0

ничего не меняет – DrMad

+0

, чтобы вы хотели анимировать свое текстовое изображение ?? –

ответ

0

Оказалось, что код в начальном посте РАБОТАЕТ! Это симулятор дизайна в Android Studio, который на самом деле не работает и показывает (неправильный) текст, как в моем первоначальном изображении. Спасибо @#*%! Разработчики Android-студий ... Я потратил несколько часов своего времени на ваше ...

0

Simple. Используйте android:gravity="center" на вашем TextView вместо android:gravity="center_vertical", а также использовать layout_toEndOf/layout_toStartOf атрибуты с layout_toRightOf и layout_toLeftOf

+0

Пожалуйста, прочитайте оригинальное сообщение еще раз. Я объяснил, почему гравитация = «центр» не работает для меня. И другие предложения ничего не меняют. Так что это не «Простой». – DrMad

0

Я просто изменить несколько щества из кода

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/content_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:showIn="@layout/activity_main"> 

<RelativeLayout 
    android:layout_height="60dp" 
    android:layout_width="match_parent" > 
    <ImageButton 
     android:id="@+id/leftbutton" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_alignParentLeft="true" 
     android:layout_gravity="center" 
     android:src="@mipmap/ic_launcher" 
    /> 
    <ImageButton 
     android:id="@+id/rightbutton" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_alignParentRight="true" 
     android:layout_gravity="center" 
     android:src="@mipmap/ic_launcher" 
     /> 
    <TextView 
     android:id="@+id/sometext" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:gravity="center" 
     android:layout_toRightOf="@id/leftbutton" 
     android:layout_toLeftOf="@id/rightbutton" 
     android:maxLines="1" 
     android:ellipsize="end" 

     android:textSize="22dp" 
     android:text="Long " /> 
</RelativeLayout> 

+0

если он не работает, я помогу вам – Vadivel

+0

ничего не меняет – DrMad

+0

вы можете видеть выше, я обновил свой код – Vadivel

0

вы можете добавить несколько атрибутов с помощью трубы

такой

android:gravity="center_horizontal|center_vertical" 
0

Вы можете добавить maxWidth в свой целевой текст.