我的清单包含公共汽车的时刻表。我想使用 SmoothScroll 根据当地时间滚动列表直到下一个时间表。有时列表有 40 项,我不知道下一个时间表在什么位置。如何知道该项的位置并使用 SmoothScroll?
如果您需要,我可以提供更多详细信息。
编辑2:
我试过这个:
覆盖此方法的自定义适配器:
public int nextTimePosition;
@Override
public int getItemViewType(int position) {
String item = getItem(position);
return (item.equalsIgnoreCase(nextTime)) ? CHANGE_BACKGROUND : TYPE_ITEM_NORMAL;
}
如果项目等于nextTime,我保存位置以获取listView类并设置smoothscroll,但没有成功
编辑 3:
我在 SimonSays 的帮助下解决了这个问题。
在 list.post() 之前,我进行查询以将下一个时间表放入变量中并使用下面的代码滚动
当他找到下一个时间表时,smoothScrollToPosition 方法停止了。但是我希望日程安排在列表的中心,所以我做了一些调整。
以下供日后参考:
lvUtil.post(new Runnable() {
@Override
public void run() {
int visibleChildCount = (lvUtil.getLastVisiblePosition() - lvUtil.getFirstVisiblePosition()) + 1;
int finalIndex = uteis.indexOf(getNext()) + (int) Math.floor((visibleChildCount / 2));
lvUtil.smoothScrollToPosition(finalIndex);
}
});