private void setListviewSelection(final ListView list, final int pos) {
list.post(new Runnable() {
@Override
public void run() {
list.setSelection(pos);
for (int i = 0; i < list.getChildCount(); i++) {
View v = list.getChildAt(i);
if (i == pos && v != null)
v.setBackgroundColor(Color.argb(200, 51, 181, 229));
else if (v != null)
v.setBackgroundColor(Color.BLACK);
}
}
});
}
これは、音楽プレーヤーでの選択を模倣するために使用しているコードです。アイデアは、ユーザーが [次へ] または [前へ] ボタンを押すと要素が強調表示されるということですが、スムーズにスクロールせず、基本的にいくつかの要素が正しく強調表示されないListView
ため、これは私が望むようには機能しません。setSelection
より良い説明のために、私が実際に実装しようとしているのは、(プレイリストを表示しているときに) 次/前のボタンを押すとスクロールする Winamp アプリです。
を使用してもsetSelectionFromTop()
、smoothScrollToPosition()
正しく機能しませんでした。