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