現在の画面をスクロールします。 私はこれを試しました AccessibilityNodeInfo accessibilityNodeInfo=getRootInActiveWindow(); accessibilityNodeInfo.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_DOWN);
私はいつも "密封されたインスタンスでこのアクションを実行できません"と言います。 助けてください。AccessibilityServiceでAccessibilityNodeInfoを使用してスクロールを実行します。
0
A
答えて
0
まず、あなたがしようとしている問題。
あなたはこの
が密閉されたインスタンス上でこのアクションを実行することはできません参照してください。
このメッセージはあなたの情報が設定されていることを伝えるAndroidです。ビューがスクロール可能ではないと言うことができるのは理にかなっていますか? NO。ビューをスクロール可能にすることはできません。スクロール可能なビューはビューまでです。例えば、スクロール可能なボタンは意味をなさない!アクセシビリティサービスはこの動作を強制することはできません。
アプリケーションのルートノードは何らかのタイプのフレームレイアウトであり、決してスクロール可能ではありません。階層のスクロール可能な部分は、ほとんどの場合、メインレイアウト/ルートビューの子です。ストーリーのモラル、あなたはビューをスクロール可能にすることはできません、スクロール可能なビューを見つける必要があります。
これは、私があなたにこれについてはるかに優れたソリューションを提供するつもりです、うまくいけばそれはあなたがサポートするデバイスの範囲内にあります。
@TargetApi(Build.VERSION_CODES.M)
public boolean scrollTo(AccessibilityNodeInfo nodeInfo) {
return nodeInfo.performAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SHOW_ON_SCREEN.getId());
}
あなたはこれが本当であるレイアウト内のビューのためにAccessibilityNodeInfo階層を探索されて何をする必要があるかのAndroid M、beforバージョンをサポートする必要がある場合、これはテストされていません(このようなおおよそのように見えますが、すべきでしょう非常に近いです!):
public boolean scrollView(AccessibilityNodeInfo nodeInfo) {
if (nodeInfo == null) return false;
if (nodeInfo.isScrollable()) {
return nodeInfo.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
}
for (int i = 0; i < nodeInfo.getChildCount(); i++) {
if (scrollView(nodeInfo.getChild(i)) {
return true;
}
}
return false;
}
関連する問題
- 1. AccessibilityServiceを使用して画面上でスワイプを実行します。
- 2. AccessibilityNodeInfoを使用してマージンを計算
- 3. accessibilitynodeinfoをスクロールする方法は?
- 4. ウェイポイントを使用してスクロール後に関数を実行する
- 5. jqueryを使用してドラッグでスクロールを実装する方法
- 6. scrollToRowAtIndexPathを使用して最後にUITableViewCellにスクロールします。atScrollPosition:NSFetchedResultsControllerDelegateメソッドを使用してアニメーションを行います。
- 7. (メッセージポンプを使用して)uiスレッドでデリゲートを実行します。
- 8. JMeter - beanshellを使用してtelnetでコマンドを実行します。
- 9. ハッシュマップルックアップを使用してJSPでタスクを実行します。
- 10. Spotインスタンスを使用してCloudFormを使用してRollingUpdateを実行します。
- 11. exec()を使用してコンソールアプリケーションを実行しています
- 12. %includeを使用してSASスクリプトを実行しています
- 13. LIBSVMを使用してサンプルファイルを実行しています
- 14. シェルスクリプトを使用してJupyterプログラムを実行しています
- 15. gunicornを使用してaiohttpサーバーを実行しています
- 16. Javaを使用してUNIXコマンドを実行しています
- 17. dockerを使用してRstudio-connectを実行しています
- 18. pypyを使用してnosetestを実行しています
- 19. theanoを使用してKerasを実行しています
- 20. jQueryを使用してdivでページをスクロールします
- 21. javascriptを使用して、プログラムでスラグフォロワウィンドウをスクロールします
- 22. Skrollr.jsを使用してMultiparallaxスクロールを実装する方法
- 23. Parallel.Invokeを使用してパラメータを使用してメソッドを実行
- 24. testngを使用してデータプロバイダテストを並行して実行します。
- 25. Windowsでapache.commons.execを使用してパラメータを使用してシェルスクリプトを実行する
- 26. 固定ヘッダー行を使用してTableViewを作成する(スクロールしません)
- 27. ナノエディタでマウスを使用してスクロールしますか?
- 28. AccessibilityService
- 29. クエリを使用して「ローカル」システムコールを実行できますか?
- 30. CASEを使用し、次にCASTを使用してCAST値を使用して平均を実行します。
私の質問を編集してください。 いいえAndroid MをサポートしたくありませんAndroid-Oでこれをやりたいのです –
しかし、スクロールスクロールのオプションが4つある場合は、スクロールスクロールを左右に行いますが、私はそれのために何をするべきですか? それ以外の場合は2つのオプションでうまくいきます。 –
より優れたソリューションはAndroid Oでもうまくいきます。 @TargetApiは正確ではない「最小」です。そのアプローチを試してみてください。 – ChrisCM