Как исправить переполнение текста TextView с заполнением android:ellipsize= " marquee"
на некоторых устройствах Android (LG Google Nexus 5 с Android L и M) TextView с android:ellipsize="marquee" и заполнение приводит к переполнению текста textview. Это происходит на правой стороне, но не на левой стороне TextView, хотя, в то время как заполнение применяется как к левой, так и к правой стороне.
Это не происходит на Samsung Galaxy S3 и S6 с Android K и L, соответственно.
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="1dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:freezesText="true"
android:alpha="0.85"
android:background="@color/by433_gray_darker"
android:textColor="@color/white"
android:textSize="11sp" />
что могу ли я исправить или обойти это?
1 ответов
ваша проблема-ошибка Android и уже сообщили, и назначить на Android с открытым исходным кодом проекта:
ваш обходной путь может выглядеть следующим образом:
<FrameLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:layout_marginBottom="1dp"
android:background="@color/by433_gray_darker">
<TextView
android:id="@+id/textId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:freezesText="false"
android:alpha="0.85"
android:text="super nice text text text text text text text text text text text text text text text text text"
android:textColor="@color/white"
android:textSize="11sp" />
</FrameLayout>
Итак, идея состоит в том, чтобы иметь контейнер-обертку с прокладками, полями и фоном. (Это не должно быть много накладных расходов производительности, если у вас есть только пара таких представлений)
оригинальный неправильный ответ (хотя было два TextViews) Проблема может быть из-за сочетания из стольких атрибутов в вашем TextView. Вот некоторые предложения:
- сначала попробуйте удалить атрибут один за другим, проверяя результат
- вы можете попытаться указать отступы на контейнере вместо текстовых представлений
-
из вашего макета кажется, что вы можете попробовать что-то вроде этого вместо "match_parent" на ваших текстовых представлениях:
<LinearLayout android:orientation="horizontal" ...> <TextView android:layout_width="0dp" android:layout_weight="1" ... /> <TextView android:layout_width="0dp" android:layout_weight="1" ... /> </LinearLayout>