2

私はに取り組んでおり、選択したアイテムの内部でListView使用しました。私の問題は、これを行ってスクロールしているときに、目に見えない子の色を設定していることです。どうすれば解決できますか。setBackgroundColoronItemLongClickListenerListView

4

3 に答える 3

2

次の属性をxmlに入れてみてください。

`

<ListView       
        android:dividerHeight="1dp"
        android:scrollingCache="false" >

`

于 2012-09-18T11:49:01.583 に答える
1

これは、リストビューがスクロール時にビューの再作成を避けるために古いビューを使用するために発生します。

実際、これはすべての adapterView クラスに共通です。

これを処理するために、ビューの位置のステータスを (arrayList または任意のコレクションを使用して) 保存し、 getView で、位置がリスト内でこの background に設定されている場合は、この background を使用し、そうでない場合は使用しますデフォルトの背景。

listview の詳細については、API を読むか (強くお勧めします)、ビデオ「the world of listView」をご覧ください。

于 2012-09-18T10:35:43.587 に答える
0

アダプター クラスで:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView == null) {
        convertView = inflater.inflate(...);
    }
    convertView.setBackgroundColor(defaultcolor);
    ...
}

ただし、これにより、そのビューが再描画されるときに onlongclicklistener で設定した背景が上書きされます。したがって、クリックされたアイテムの位置のリストを保持して、これらを getView メソッドで設定できるようにすることができます。

于 2012-09-18T11:07:43.423 に答える