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);
}
}
});
}
这是我用来模仿音乐播放器中的选择的代码。这个想法是,当用户按下 Next 或 Previous 按钮时,一个元素会在 中突出显示ListView
,但这不是我想要的方式,因为setSelection
滚动不顺畅并且基本上某些元素没有正确突出显示。为了更好地解释,我实际上要实现的是一个 Winamp 应用程序,当您按下下一个/上一个按钮(查看播放列表时)时,它具有滚动方式。
使用setSelectionFromTop()
,smoothScrollToPosition()
也无法正常工作。