您好,我想使用 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 仅适用于 ListView 和 GridView,不适用于 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 任务失败且没有错误