问题描述
我在具有辅助功能支持的 RadioGroup 中使用 TouchableOpacity。选择任何单选按钮时,我正在使用OnCaccessibleDible回调来读出所选的单选按钮。
但是 onAccessibilityAction 回调不适用于 Android。它只是有时阅读。在 iOS 上完美运行。
为了临时修复,我在 onPress 时添加了无障碍语音代码。但有时会读取两次。
这是我的代码:
{
radioProps.map(({ text,value,selected,disabled }) => (
<TouchableOpacity
style={{ ...Styles.radioContainer,opacity: disabled ? 0.4 : 1 }}
key={value}
accessible={true}
accessibilityLabel={`${getAccessibleLabel(selected,value)} ${text}`}
accessibilityRole={'radio'}
accessibilityActions={[{ name: 'selected',label: 'selected' }]}
onAccessibilityAction={(event): void => {
if (event.nativeEvent.actionName === 'selected') {
onRadioBtnPress(value);
}
}}
disabled={disabled}
onPress={(): void => {
onRadioBtnPress(value);
if (isAndroid()) {
AccessibilityInfo.announceForAccessibility(`${getLabel('selected')} ${text}`);
}
}}
activeOpacity={1}
>
<Radio selected={selected || (!!selectedValue && selectedValue === value)} />
<BodyTextLargeRegular
style={Styles.textStyle}
accessible={false}
>
{text}
</BodyTextLargeRegular>
</TouchableOpacity>
))}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)