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()
也无效。
答案 0 :(得分:0)
您只能从主线程更新Views
。将代码移动到主线程。
答案 1 :(得分:0)