Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用onPopulateAccessibilityEvent和AccessibilityDelegate自定义RecycleView中的可访问性_Android_Kotlin_Accessibility - Fatal编程技术网

Android 使用onPopulateAccessibilityEvent和AccessibilityDelegate自定义RecycleView中的可访问性

Android 使用onPopulateAccessibilityEvent和AccessibilityDelegate自定义RecycleView中的可访问性,android,kotlin,accessibility,Android,Kotlin,Accessibility,我正在尝试为RecyclerView中的项目定制对讲输出。我修改了onBindViewHolder方法,以包含以下代码 itemView?.setAccessibilityDelegate(object: View.AccessibilityDelegate() { override fun onPopulateAccessibilityEvent(host: View?, event: AccessibilityEvent?) {

我正在尝试为RecyclerView中的项目定制对讲输出。我修改了
onBindViewHolder
方法,以包含以下代码

       itemView?.setAccessibilityDelegate(object: View.AccessibilityDelegate() {
            override fun onPopulateAccessibilityEvent(host: View?, event: AccessibilityEvent?) {
                super.onPopulateAccessibilityEvent(host, event)
                event?.let {event ->
                    if (event.eventType == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED) {
                        event.text.add("Hello world!")
                    }
                }
            }
        })
不幸的是,对讲输出仅针对
RecyclerView
中最后一个可见项进行了修改


我不明白为什么代理只适用于某些
视图持有者
而不适用于其他人。

RecyclerView
AccessibilityDelegates
添加到其子级,以向其添加自己的操作。因为一个视图最多只能有一个委托,所以无论是先添加的委托(您的委托还是为
RecyclerView
添加的委托)都会被删除

RecyclerView
具有可访问性Legate的功能,适用于其子项。这就是你想要的。

androidx链接: