Android scrollTo()不显示ListView的新项目

时间:2016-09-20 13:04:28

标签: android listview scroll

我正在尝试为自定义ListView实现一些逻辑。在其OnTouchListener的{​​{1}}方法中,我会检查是否符合某些条件,如果是,请向上/向下滚动onTouch(),具体取决于用户手指的移动方向。现在,当我向下滚动ListView以显示底部的新项目时,这些项目不会显示。我每次拨打ListView时都试图拨打ArrayAdapter.notifyDataSetChanged(),但这不起作用。我也搜索了这个问题,但我找不到可靠的解决方案/解释。

以下是一些代码示例:

scrollTo()

2 个答案:

答案 0 :(得分:1)

请尝试在notifyDataSetChanged之后执行scrollTo等待一秒。

new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
    @Override
    public void run() {
       listView.scrollTo(0, (int) -deltaY);
    }
}, 300)

答案 1 :(得分:1)

您可以使用 scrollListBy 代替 scrollTo 。但是使用它有一个限制,你只能在 KitKat 版本之上或之上使用它。像这样使用它: -

listView.post(new Runnable() {
    @Override
    public void run() {
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            listView.scrollListBy((int) -deltaY);
       }
    }
});