android - performAction() 中的 SCROLL_TO_POSITION 返回

您好,我想使用 AccessibilityService 滚动到布局中的特定位置。

我尝试了几种方法,但只有 AccessibilityNodeInfo.ACTION_SCROLL_FORWARD 有效,但 AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_TO_POSITION 无效。

我是这样用的。要改变什么才能让它发挥作用?

private AccessibilityNodeInfo findScroll(AccessibilityNodeInfo root) {
    if(root == null) return null;

    if(root.isScrollable())
        return root;

    for(int i=0; i<root.getChildCount(); i++) {
        if(root.getChild(i).isScrollable())
            return root.getChild(i);
    }
    return null;
}

AccessibilityNodeInfo scrollable = findScroll(getRootInActiveWindow());
            if (scrollable != null) {
                Bundle bundle = new Bundle();
                bundle.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_ROW_INT, 8);
                bundle.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_COLUMN_INT, 8);
                scrollable.performAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_TO_POSITION.getId(), bundle);
            }

最佳答案

ACTION_SCROLL_TO_POSITION 仅适用于 ListViewGridView,不适用于 RecyclerView,因此请先检查您要滚动的内容。您的代码适用于 GridView 但如果您尝试滚动 ListView 然后删除 ACTION_ARGUMENT_COLUMN_INT 因为 ListView 只有行.

关于android - performAction() 中的 SCROLL_TO_POSITION 返回 false AccessibilityService Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61061900/

相关文章:

python-3.x - 刚刚切换到 TensorFlow 2.1 并收到一些烦人的警告

python - Django 和 MongoDB 在 Django 模型上的默认 ID autoF

pyspark - 实例化时出错 'org.apache.spark.sql.hive.HiveEx

azure-devops - 已邀请用户 Azure Devops 项目,但他们无法访问它

python - 如何处理 Python 中不同模块的相关对象之间的循环引用?

python - 使用自定义容器从 AI Platform 训练作业访问 Google Secret

http - flutter x-www-form-urlencoded POST 请求

azure-devops - Azure DevOps VsTest 任务失败且没有错误

python - 使用 PyMC3 进行贝叶斯校准,Kennedy O'Hagan

django - HTTPConnectionPool(主机 ='0.0.0.0',端口=5000)