Android ListView滚动到位置

时间:2012-09-09 10:04:04

标签: android listview scroll winamp

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()也无效。

2 个答案:

答案 0 :(得分:0)

您只能从主线程更新Views。将代码移动到主线程。

答案 1 :(得分:0)