ListView にいくつかのカスタム要素があり、各要素は、知る限り、LinearLayout の TextView にすぎません。テキストが長すぎる場合、 TextView 内のテキストを水平方向にスクロールする 1 行にしたいと思います。これに関する多くの投稿を読んで、うまくいくはずの解決策を思いつきましたが、テキスト全体をスクロールする代わりに、含まれているビューの長さに合わせてテキストを切り取り、3 つのドットで終了しました。3 つのドットは必要ありませんが、テキスト全体をスクロールする必要があります。
これは、リスト内の項目のレイアウトです (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()
(BaseAdapter を拡張する) アダプターのメソッドでsetSelected(true)
は、ビューを返す前に、TextView でメソッドを使用します。
何が問題なのかわかりません。どんな助けでも大歓迎です。