2017-05-18 64 views
0

實現對講,點擊我的應用程序的要素之一查看後,公告背誦:替換爲「槍王整個announcemnt激活時對講啓用

,我所包括的描述,暫停,然後將其背:「槍王激活」

我用輔助代表從我發現這裏的例子:。 https://stackoverflow.com/a/39480983/5544859

但它只是將最後一句話對我來說,而不是整個句子的

例如,它說:Bla Bla bla。 (暫停),然後雙擊到「自定義字符串」

我想替換整個句子。

回答

-2

此短語來自TalkBack並且不能由設計進行配置。 TalkBack正試圖在所有應用中提供一致的用戶體驗。

-1

檢查這個:https://stackoverflow.com/a/39480983/2042341

這裏貼吧: 在API 21+,你可以在你的視圖的AccessibilityNodeInfo設置自定義操作自定義操作名稱。有兩種方法:1)設置AccessibilityDelegate並覆蓋onInitializeAccessibilityNodeInfo委託方法或2)擴展視圖的類並覆蓋onInitializeAccessibilityNodeInfo。

無論哪種方式,您都將構建一個新的AccessibilityAction,並使用AccessibilityNodeInfo.addAction將其設置在節點上。

如果您選擇使用一個委託,您可以按如下設置自定義描述的點擊動作:

view.setAccessibilityDelegate(new AccessibilityDelegate() { 
    @Override 
    public void onInitializeAccessibilityNodeInfo(
    View v, AccessibilityNodeInfo info) { 
    super.onInitializeAccessibilityNodeInfo(v, info); 

    // A custom action description. For example, you could use "pause" 
    // to have TalkBack speak "double-tap to pause." 
    CharSequence description = getResources().getText(R.string.my_click_desc); 
    AccessibilityAction customClick = new AccessibilityAction(AccessibilityAction.ACTION_ACTION_CLICK, description); 
    info.addAction(customClick); 
    } 
}); 

如果應用程序的目標API < 21,用正確的* COMPAT支持庫的方法。該功能沒有反向移植,因此您不會在API < 21上獲得自定義描述,但您可以避免在應用程序代碼中進行顯式版本檢查。

+0

您好@DaweiWang,感謝您發表一個答案。但如果一個問題在另一個問題中完全回答,最好留下評論指出答案,並將問題標記爲重複。 – Chic