对讲-为View Pager滑动自定义辅助功能文本

时间:2019-01-24 19:58:52

标签: android talkback android-accessibility

这让我发疯,我不知道如何为“用两根手指轻扫以更改页面”自定义操作。如果我想在“双击”后进行一些自定义,则可以使用它,因此,我敢肯定,我走在正确的轨道上。但是我尝试过的每种动作类型似乎都不起作用。这是我必须在“双击到”后附加一些文本的内容。但是,我几乎尝试过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)
        }
    })

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我在Viewpager滑动时遇到了类似的缺陷,例如Talkback宣布。我通过设置 viewpager oveerride方法-onPageScrolled

来解决此问题
  

重写乐趣onPageScrolled(position:Int,positionOffset:Float,positionOffsetPixels:Int){

     

//这将在您每次滑动时触发   viewpager.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED)
  }

因此,在您的情况下,您可以在viewpager(以编程方式或XML方式)中为每个页面管理自定义辅助功能文本,并且在您滑动时便会宣布

相关问题