私の質問- カスタム ListView にある TextView のテキストを、ListView でアイテムが選択されている場合にのみマーキー スクロールするようにします。リスト項目がフォーカスを失ったら、マーキーのスクロールを停止します。スクロールを機能させるには TextView を有効 ( setEnabled(true) ) に設定する必要があることはわかっていますが、アイテムが追加されたときにこれを行うと、それらはすべてスクロールします。起こります)。ListView のクリックハンドラーを使用してプログラムで設定して、TextView を有効に設定しようとしました ( setEnabled(true))、プライベート変数で現在選択されているアイテムを追跡し、逆に、新しいアイテムがクリックされたときに、以前のビューの TextView 有効化ステータスを false に設定します。これが理にかなっていることを願っています。これをよりよく説明する Java コードを次に示します。
private View tempListItemView = null;
if (this.tempListItemView != null) {
TextView tempTxtView = (TextView) tempListItemView.findViewById(R.id.txtArticleTitle);
tempTxtView.setSelected(false);
tempTxtView.setEllipsize(TruncateAt.END);
}
// Set marquee of currently selected list item
TextView tt = (TextView) v.findViewById(R.id.txtArticleTitle);
tt.setEllipsize(TruncateAt.MARQUEE);
tt.setSelected(true);
tempListItemView = v;
これはうまくいきます。しかし、それは少し不格好です。たとえば、前のアイテムがディスプレイから離れた場合、オフになることはなく、リスト アイテムを選択すると、設定したカスタム listSelector プロパティがすべて失われます (以下を参照)。また、スクロールする TextView の背景項目が黒に変わるという奇妙な動作がいくつかありました (さらに、ListView の listSelector 全体が完全に消えます。Droid でキーパッドを使用しても、これは発生しません。正常に動作します。ただし、リスト項目が押されたときにこの機能をエミュレートしようとしているだけです.これを実現する方法については、ウェブ上であまり見つけていません.以下はスニペットとスクリーンショットです.
カスタム リスト ビューで ArrayAdapter にバインドした ListActivity があります。このアクティビティが関連付けられているコンテンツ ビューは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector"
/>
</LinearLayout>
list_selector ドローアブルは次のようになります。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable ="@drawable/maroon_list_select_bg" />
<item android:drawable="@drawable/maroon_list_select_bg" />
</selector>
その Drawable は、リスト項目選択の栗色の背景色をペイントするための単純な 1x1 栗色のピクセルです。スペースを節約するために、カスタム ビューがどのように見えるかのスクリーンショットを添付しました。
ここでは、各リスト項目を定義するカスタム レイアウトの簡単なスニペットを示します (マーキー TextView を使用)...
<TextView
android:id="@+id/txtArticleTitle"
android:textSize="16sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/list_item"
android:singleLine="true"
android:ellipsize="end">
</TextView>
<TextView
android:id="@+id/txtArticleSnippet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/list_desc_copy"
>
</TextView>
<TextView
android:id="@+id/txtArticleVotes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Votes: 1576"
android:textColor="@color/list_small_copy"
>
</TextView>
覚えておいてください、スクロールを取得するには android:ellipsize を「マーキー」に設定する必要があることを知っていますが、上記で説明したように、現在選択されているリストのタイムに対してプログラムでこれを行っていました。
誰かがこれに対する解決策を持っていますか? 事前に感謝し、長い投稿をお詫びします...徹底的にしようとしています. 再度、感謝します!