我有一个真实的应用程序 - 您可以在下面的屏幕截图左侧看到。
我在GitHub准备了a very simple test app,你可以在右边看到:
真正的应用在底部有一个ListView,其中充满了与蓝牙相关的日志消息。这种情况经常发生,每秒几次,用户无法向上滚动并查看特定事件 - 因为当新事件添加到用户时,列表会自动跳到底部列表。
我的问题是:当用户向上滚动以及如何在用户滚动到底部时再次启用自动滚动时,如何禁用ListView
的自动滚动?
这是我非常简单的测试应用程序:
正如您所看到的,布局中的XML属性当前启用了自动滚动:
<ListView
android:id="@+id/myListView"
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
答案 0 :(得分:0)
好的,我找到了解决问题的完美解决方案:
<ListView
android:id="@+id/myListView"
android:stackFromBottom="true"
android:transcriptMode="normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
当transcriptMode设置为正常时,则:
数据集时,列表会自动滚动到底部 收到更改通知,并且仅在最后一项已经收到时 在屏幕上可见。
以下是my updated test project(我还添加了双击侦听器以清除那里的ListView
)