У меня есть некоторые пользовательские элементы в ListView, и каждый элемент, насколько вам известно, просто TextView в LinearLayout. Я хотел бы, чтобы текст внутри TextView был отдельной строкой, прокручивающейся по горизонтали, когда текст слишком длинный. Я прочитал много сообщений об этом, и я придумал решение, которое должно было работать, но вместо того, чтобы иметь полную прокрутку текста, у меня есть текст, сокращенный до длины содержащего View и заканчивающийся тремя точками. Я не хочу, чтобы три точки, но весь текст нужно прокручивать.TextView android: ellipsize = "marquee" не работает как ожидалось
Это расположение элементов в списке (list_item.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listItem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/list_item_selector"
android:orientation="horizontal"
android:paddingBottom="7dp"
android:paddingLeft="15dp"
android:paddingTop="7dp" >
<TextView
android:id="@+id/listText"
style="@style/Text_View_Style_White"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:padding="3dp"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textColor="@drawable/list_item_text_selector" />
</LinearLayout>
Я попытался также с android:focusable="true"
, android:scrollHorizontally="true"
и android:maxLines="1"
атрибутов, но ни один из них не работает. В методе getView()
адаптера (который расширяет базовый адаптер) я использую метод setSelected(true)
в TextView, прежде чем возвращать представление.
Я не могу понять, в чем проблема. Любая помощь будет высоко оценена.
У меня также такая же проблема! Я пробовал много разных решений, и никто из них не работал! – thiagolr
Привет, Андре, не могли бы вы разместить свой getView(), пожалуйста? Благодарю. – Tom
Я думаю, что довольно ясно, что здесь происходит. Однако есть два решения, и я не могу сказать, какой из них вам нужен без кода! Итак, скажите мне, если вы программно установите свой 'ListView' s.t. 'setItemsCanFocus (false)', это решает вашу проблему? Если нет, есть что-то еще, что это исправит. – Tom