2011-07-20 8 views
4

私はカスタムリストビューを作成しました。各リスト項目にはテキストビューがあります。ユーザーがその特定のリストアイテムに触れるたびにマーキーを適用する必要があります。私は(真)するsetSelectedパットときテキストのマーキーエフェクトタッチフォーカスのカスタムリストビューのアイテム

私は

android:ellipsize="marquee" 
android:marqueeRepeatLimit="marquee_forever" 

この作品を設定しようとしました。 getview()ではなく、リストのすべての項目に適用されます。フォーカスされた/押されたアイテムのマーキーのみを有効にする必要があります。

+0

HI [この]をチェックし、[1]ポスト私はそれが 参考になりましだと思う[1]:http://stackoverflow.com/questions/1424276/ellipsize-not-working-for-textview-custom-listview/1424686#1424686 – Pratik

+0

このスレッドを調べていただきありがとうございます。私はこれを試みた。 \t android:ellipsize = "マーキー" android:scrollHorizo​​ntally = "true"、android:lines = "1"まだ使用していません。私は、これがフォーカスされた項目のマーキーのみを有効にするのに役立つかどうかもわかりません。 – manjusg

答えて

2

私はあなたが項目をタッチすると、この時点でTextViewを取得したと思います。そのためには、そのマーキーをマーキーにしてください.Goodluck。

+0

私は変換ビュー、つまり遅延アダプターの概念を使用しています。ですから、私はontouchlistnerに1つの項目に対してsetselectedを設定します。 – manjusg

+0

getview()メソッドでマーキーを設定すべきではないと思います。項目をタッチすると設定されます(この項目からTextViewを取得します)。できない場合は、私に連絡してください我々は多くを議論する(スカイプ、ヤフー:fsoft_duonghv) – duonghv

+0

おかげで多くのduonghv。私はgetview()でマーキーを設定していません。私はKEY_DOWNアクションのためにontouchlistnerに設定しています。それをKEY_UPで削除します。私はいくつかのことを試みます。私が結果を得れば、あなたは知っているだろう、そうでなければ確かにuに連絡する。 – manjusg

0

私はこれが古い投稿だと知っていますが、最近、リストビューの項目をスクロールする物理スクロールボタンがないタブレットでこの問題が発生しました(実際にはそれに)。私の携帯電話で 、私は、リストビューアイテムの上にスクロールすると、「車種」は常に1日目 から取り組んできましたので、私はonListItemClickでいくつかのあいをした...

これが結果です:

@Override 
protected void onListItemClick(ListView list, View v, int position, long id) { 
    final View t = v.findViewById(R.id.YOURTEXTVIEW_ID_HERE); 
    t.requestFocusFromTouch(); 
    list.setSelectionFromTop(position, v.getTop()); 
    super.onListItemClick(list, v, position, id); 
} 

私はrequestFocus、requestFocusFromTouch、list.setSelectionFromTopのすべての種類の組み合わせを試しましたが、上記の組み合わせはそれを動作させ、listitemをその位置にとどめるために必要な最低限のメソッドです。 list.setSelection(position)しかし、このメソッドが意図しているので、選択された項目はリストビューの先頭にできるだけスクロールされます。

私だけだXMLで

android:ellipsize="marquee" 
android:singleLine="true" 
+0

確かにtextviewに問題があります。選択されていない状態ではスクロールしません。 textview.setselcted(true)を呼び出すだけで、マーキーを動作させるためにrequestfocusfromtouchを呼び出す必要はありません。 – manjusg