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

问题描述 投票:0回答:1

这让我疯狂,我无法弄清楚如何自定义“用两根手指轻扫以更改页面”的操作。如果我想在“双击”之后做一些自定义,我已经有了它的工作,所以我很确定我是在正确的轨道上。但是我尝试的每种动作类型似乎都不起作用。这是我必须在“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)
        }
    })

谢谢你的帮助

android talkback android-accessibility
1个回答
0
投票

我遇到了类似的缺陷,比如Talkback在viewpager刷卡时宣布。我通过设置viewpager oveerride方法 - onPageScrolled来修复它

覆盖fun onPageScrolled(position:Int,positionOffset:Float,positionOffsetPixels:Int){

//每当你滑动viewpager.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED)时都会触发 }

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

© www.soinside.com 2019 - 2024. All rights reserved.