所以我SeekBar
在我的应用程序中有一个,我正在使用 Android 的 TalkBack 功能。滚动时SeekBar
,设备会显示“(android:contentDescription of view), SeekBar control, 50%”。是否可以更改它以显示实际值(从 -4 到 +4),例如“SeekBar 控件,负 4”?
3 回答
如果您使用的是 SeekBar,我认为您正在某处跟踪该值。在我们的例子中,SeekBar 上方有一个 TextView,它显示从 SeekBar 的进度派生的当前值。
我发现设置android:accessibilityLiveRegion="assertive"
为 TextView 的属性非常有效。它会导致更新值的公告(因为 TextView 已更新),然后是 SeekBar 的进度。
注意:设置android:accessibilityLiveRegion
为assertive
适合我们,因为用户快速更改 SeekBar 的进度所花费的时间更少。将其设置为polite
宣布每个增量,同时assertive
将未宣布的增量跳过到最近的增量。
虽然不是完美的答案,但我发现了这个有用的方法: https://developer.android.com/reference/android/view/View.html#announceForAccessibility(java.lang.CharSequence)
这基本上使 TalkBack 功能在特定事件期间说话。我在 OnSeekBarChangeListener 中添加了这个,以便每次更改滑块的值时让它“说话”。
是的,有可能。
你说它显示“SeekBar control, 50%”意味着你得到了百分比。
所以,使用这个百分比来实现你的目标:
int minValue = -4;
int maxValue = 4;
int diff = maxValue - minValue;
int realProgress = minValue + (diff * percentage / 100);
realProgress 是您的答案。
希望对您有所帮助!