2017-03-01 121 views
0

我有一個AccessibilityDelegateCompat用於初始化AccessibilityNodeInfo的自定義視圖,如何避免/移除默認視圖中的操作,如「雙擊激活」?AccessibillityNodeInfo中的重寫操作

我AccessibilityActionCompat樣子:

playVideoAction = new AccessibilityNodeInfoCompat 
       .AccessibilityActionCompat(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_ACCESSIBILITY_FOCUS 
       .getId(), 
       "Double tap to play video"); 

和我稱之爲onInitializeAccessibilityNodeInfo()accessibilityNodeInfoCompat.addAction(playVideoAction)

我聽到「雙擊播放視頻」和「雙擊激活」。我只想聽到播放視頻的動作。

+0

你有沒有試過'''AccessibilityNodeInfoCompat.removeAction(AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS)'''? –

回答

2

如果您想修改主要交互模式(例如,雙擊)的內容,您應該重寫CLICK動作而不是FOCUS。

playVideoAction = new AccessibilityActionCompat(
    AccessibilityNodeInfoCompat.ACTION_CLICK, "play video"); 

而且,你的描述應該只包括將要執行的操作,而不是互動模式 - 所以只是「播放視頻。」無障礙服務負責管理交互模型並添加「雙擊」描述。對於其他類型的可訪問性服務(如交換機訪問或語音),此說明會有所不同。

+0

整齊。有沒有辦法將整個「雙擊到******」? –

+0

@RedM這是晚了,但你可以使用'info.addAction(AccessibilityNodeInfoCompat.ACTION_FOCUS);'這將刪除任何默認的公告 –