我添加一個標題到ListView。標題有幾個組件(Buttons,TextViews,RelativeLayouts)。當對講打開並選擇標題時,將讀取標題的全部內容,並且無法選擇單個組件。雖然,按鈕是可選的,對講會讀取它們。但文字瀏覽不是分開的。對講沒有閱讀標題的子視圖
我怎麼對講治療的頭作爲單獨的組件的所有組件?
我添加一個標題到ListView。標題有幾個組件(Buttons,TextViews,RelativeLayouts)。當對講打開並選擇標題時,將讀取標題的全部內容,並且無法選擇單個組件。雖然,按鈕是可選的,對講會讀取它們。但文字瀏覽不是分開的。對講沒有閱讀標題的子視圖
我怎麼對講治療的頭作爲單獨的組件的所有組件?
簡單的回答:你不能。
TalkBack通過收集列表視圖單元格中的所有信息(讀取:非活動)信息(標題視圖仍然是列表視圖的一部分)並將其作爲一個元素讀出來嘗試變得聰明。這將單元格內的任何信息關聯在一起,我相信通過將對象放置的佈局標記爲importantForAccessibility,儘管可能會使用特定的ListView單元邏輯發生一些TalkBack魔法。
舉例來說,如果你有一個看起來像這樣的細胞:
Name: Chris
Address: Blah blah blah
Name: Herman
Address: Blarg blarg blarg
每個細胞會大聲念出:
Name: Chris Adress Blah Blah Blah
這是有益的,因爲沒有排序/數據關聯的問題。如果數據不包裹在一起會怎樣? 「Blah Blah Blah」地址屬於Chris(之前的名字)還是Herman(之後的名字)?在這個等式中有效元素被忽略,因爲有效元素需要......很好地活躍。因此必須單獨聚焦,以便用戶可以與他們互動。
人們肯定會認爲這種做法的相對優點VS允許開發妄加數據關聯的錯誤,但已經作出決定,你是堅持了下來。
如果你真的關心,你可以重新發明輪子,並創建自己的列表視圖,使用線性佈局,這真的不是那麼難。在這種情況下,你當然可以得到你想要的任何行爲。或者,將標題放在單獨的佈局中,而不是使用ListViews標題單元格。假設,如果我在ListView單元格上使用「isImportantForAccessibility」的假設是實現它的方式(與ListViews的一些TalkBack魔術相對),那麼您可以在查看層次結構後將它們抓取到單元格佈局(因此Android Framework已經有了它的方式),並將isImportantForAccessibility重置爲no。雖然,我強烈建議反對這個做法作爲
答:我不知道它會工作,這僅僅是假設的(不,不是要測試它自己)。如果這個邏輯確實在TalkBack方面,那麼你真的和真的都會被洗腦,除非你想重新創建ListView或者編寫你自己的屏幕閱讀器。
B:一般情況下,這些是話語提示試圖聰明的事情做的幫助可訪問性,而不是傷害它。除非你真的瞭解可訪問性,否則最好讓Android做它的事情。
我發現,如果我設置textviews到textIsSelectable(真),對講識別那些textviews作爲可以選擇的一種元素。爲了在Talkback未激活時不更改我的應用程序的功能,我使用了AccessibilityManager來檢查Talkback是否已激活。