切换 ListView 的自动滚动 - 当用户交互滚动时

Toggle autoscroll of ListView - when scrolled interactively by user

我有一个真实的应用程序 - 您可以在下面屏幕截图的左侧看到它。

并且我在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" />

好的,我找到了完美解决我的问题的方法:

<ListView 
    android:id="@+id/myListView"
    android:stackFromBottom="true"
    android:transcriptMode="normal"        
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

transcriptMode设置为正常时,则:

The list will automatically scroll to the bottom when a data set change notification is received and only if the last item is already visible on screen.

这里是 my updated test project(我还添加了双击侦听器以清除那里的 ListView