我实现了一个代码来使用View.scrollTo(...)和 postDelay 计时器执行 Auto HorizontalScrolling 以保持滚动继续。
开始滚动我正在使用:
private void startScrolling() {
handler.postDelayed(new Runnable() {
public void run() {
counter = (int) (counter + 10);
handler.postDelayed(this, 100);
viewCount++;
if(viewCount == MAX_CHILD) {
viewCount = 0;
resetViewPosition(0);
}
llParent.scrollTo(counter , 0);
}
}, 1000L);
}
最后我删除了每一个第一个视图并再次添加它,所以它最终会出现并显示为新的孩子,使用:
private void resetViewPosition(int viewIndex) {
View view = llParent.getChildAt(viewIndex);
Log.v(TAG, "resetViewPosition : "+view.getId()+", "+llParent.getChildCount());
llParent.removeViewAt(viewIndex);
llParent.addView(view);
}
问题:在这个过程中,最初对于某些视图它可以正常工作,但很快下一个孩子不可见。仍在添加/删除进程运行,我在 resetViewPosition(..) 中正确获取索引 ID。它只是子视图没有绘制。
请建议我如何在父视图滚动时添加和显示视图?