2015-04-10 2 views
1

Ниже мой XML-файлTextView не обрезая текст

<?xml version="1.0" encoding="utf-8"?> 
<TableRow xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableRow1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:gravity="center_vertical" > 

    ... 
    <TextView 
     android:id="@+id/tvAlternateRoad" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="@dimen/fancy_dashboard_max_speed_circle_strock_size" 
     android:gravity="start" 
     android:text="Via A11" 
     android:lines="1" 
     android:textColor="#808080" 
     android:textSize="@dimen/fancy_dashboard_lable_size" /> 

</TableRow> 

Я зову вышеуказанный файл .xml в моем основном виде .xml как следующие,

  <RelativeLayout 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.85" 
       android:gravity="end" 
       android:orientation="horizontal" > 

       <TableLayout 
        android:id="@+id/layAlternateRoute" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:layout_margin="@dimen/fancy_dashboard_max_speed_circle_strock_size" 
        android:background="@drawable/bg_round_rect_alternate_route" /> 
      </RelativeLayout> 

http://i.stack.imgur.com/a0KRs.png

Я показываю вид на экране, который имеет элемент TableRow. Я устанавливаю это текстовое значение Textview tvAlternateRoad во время выполнения. Иногда, когда текст большой, он перемещается за пределы представления. Я попытался усечь его, используя android:ellipsize="end" от некоторых S.O. но кажется, что он не работает сейчас через несколько дней.

Может ли кто-нибудь помочь мне в этом?

+0

Можно проверить добавление андроида: SingleLine = «истинное» это код – surhidamatya

+0

Спасибо но я тоже пробовал это, – user4583559

+0

Я тоже пробовал, и он работает на меня. Я следил за учебником отсюда http://myandroidtuts.blogspot.com/2013/07/ellipsize-property-of-android.html – surhidamatya

ответ

0

Хорошо, после долгих усилий я решил проблему самостоятельно.

Логика:.

  • принести размер экрана программно
  • INT screen_width = context.getResources() getDisplayMetrics().widthPixels;
  • затем я использовал 42% от screen_width как MaxWidth из TextView
  • ((TextView) alternate.findViewById (R.id.tvAlternateRoad)) setMaxWidth ((INT) (screen_width * 0,42)).
  • Я также установить ниже значения в XML
  • андроида: ellipsize = «бегущая строка»
  • андроид: MaxLines = «1»
1

Дать paddingRight для текстового просмотра. Кроме того, текстовое представление имеет контент для обертывания ширины и никакого отношения к какому-либо другому виду. Таким образом, ширина вашего текста может превышать фокусное изображение округленного угла в соответствии с длиной текста. Поэтому либо дайте некоторое значение maxWidth, либо привяжите его к некоторым другим представлениям.

Редактировать

Я только что сделал этот XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
<TextView 
     android:id="@+id/textview_Statu" 
      style="@style/text_view_login_style" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="@dimen/more_txt3_margin_t" 
      android:background="@android:color/white" 
      android:ellipsize="end" 
      android:singleLine="true" 
      android:text="1234567890qwertyuiopasdfghjklzxcvbnm" 
      android:textColor="@color/blue_end" /> 
    </LinearLayout> 

В графическом виде, это выглядит следующим образом graphical view of text view

его рабочих штрафа.

+0

Спасибо, я попробовал, но ничего не случилось ... :( – user4583559

+0

Как я могу связать свой текст с другим видом? – user4583559

+0

alignRight с некоторым видом, если он завернут в relativelayout. – seema

0

Я заметил, что TextView будет делать разные вещи в отношении обертывания и усечения в зависимости от контейнера, в котором он находится. Попробуйте использовать ячейку TableRow, например, FrameLayout. Затем положите TextView внутри FrameLayout и посмотрите, что произойдет.

0

попробовать это

TableLayout должен быть

<TableLayout 
android:id="@+id/tbl" 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
    > 

оставшаяся часть должна быть

<TableRow 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 

     > 

<TextView 


     android:id="@+id/tvAlternateRoad" 


    android:layout_height="wrap_content" 
      android:layout_width="match_parent" 

      android:ellipsize="end" 
    android:maxLines="1" 
    android:minLines="1" 

       android:layout_marginRight="@dimen/fancy_dashboard_max_speed_circle_strock_size" 
       android:gravity="start" 
       android:text="Via A11" 
       android:layout_weight="1" 
       android:textColor="#808080" 
       android:textSize="@dimen/fancy_dashboard_lable_size" /> 

+0

Nopes, это вообще не работало :( – user4583559

+0

@ user4583559 проверить мои правки –

+0

Nopes, это не работало вообще :(- – user4583559

0

Просто используйте: андроида: SingleLine = "истина" и андроид: ellipsize = "end" и установите фиксированную ширину fo r ваше текстовое изображение как «match_parent» или что-то в dp, например «180dp» и т. д. singleLine = «true» нуждается в вашем текстовом представлении с фиксированной шириной, которая не предоставляется «wrap_content». Текстовое представление будет показывать только эллипсы в конце границ его представления, и поскольку вы установили «wrap_content», ваше текстовое представление не имеет фиксированных границ.

Смежные вопросы