这让我疯狂,我无法弄清楚如何自定义“用两根手指轻扫以更改页面”的操作。如果我想在“双击”之后做一些自定义,我已经有了它的工作,所以我很确定我是在正确的轨道上。但是我尝试的每种动作类型似乎都不起作用。这是我必须在“Double tap to”之后添加一些文本。但是,我尝试了AccessibilityNodeInfoCompat中的每个动作枚举,并且大多数都没有读出来。我试图在“用两根手指滑动”之后添加一些额外的文字
ViewCompat.setAccessibilityDelegate(container, object : AccessibilityDelegateCompat() {
override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfoCompat) {
super.onInitializeAccessibilityNodeInfo(host, info)
// A custom action description. For example, you could use "pause"
// to have TalkBack speak "double-tap to pause."
val description = "This is a test"//host.resources.getText(R.string.)
val customClick = AccessibilityActionCompat(
AccessibilityNodeInfoCompat.ACTION_CLICK, description
)
// for(action in info.actionList){
// val t = info.actionList
// info.removeAction(action)
// }
info.addAction(customClick)
}
})
谢谢你的帮助
我遇到了类似的缺陷,比如Talkback在viewpager刷卡时宣布。我通过设置viewpager oveerride方法 - onPageScrolled来修复它
覆盖fun onPageScrolled(position:Int,positionOffset:Float,positionOffsetPixels:Int){
//每当你滑动viewpager.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED)时都会触发 }
因此,在您的情况下,您可以在viewpager(以编程方式或以XML格式)中为每个页面管理自定义辅助功能文本,并且一旦您滑动它就会宣布