2016-04-22 22 views
6

Wdrażam "Read Aloud" lub "Talkback" dla aplikacji. Wszystko działa z tekstem contentDescription, ale z menu opcji, nie znalazłem nic związanego z contentDescription, chcę system przeczytać "Menu "+ item's name.Ustawianie opisu zawartości menu opcji android Talkback

EX: Moje menu ma 2 pozycje: "Create New Folder" i "Usuń bieżący folder", obecnie, gdy skupię pozycję menu (trackball Pomoc i klucza bluetooth), system może mówić dokładnie menu użytkownika tekst. Ale chcę to mówi więcej jak "1: Menu Create New Folder" i "2: Menu Usuń bieżący folder".

Jak mogę zmienić przeczytany tekst? Jak mogę uzyskać skoncentrowany menu item, gdy klawisz klawiatury Bluetooth naciśnij klawisz UP/DOWN?

+0

Co stanie się po ustawieniu btn.setContentDescription ("Menu:" + "Utwórz blabla"); a następnie btn.requestFocus()? – JSBach

Odpowiedz

7

Podczas mojego dochodzenia, w wewnętrznym kodzie źródłowym systemu Android, klasa ActionMenuItemView.java metoda setTitle(CharSequence title), kod źródłowy ustawia również setContentDescription(title), więc Android będzie czytał domyślnie tekst MenuItem. Nie wiem, dlaczego rdzeń jest tak nieelastyczny w tym przypadku.

Aktualizacja:

Dzięki za @sofakingforever answer.

Wydano Google po prostu dodałem metodę setContentDescription(CharSequence contentDescription) do klasy MenuItem na API 26 (Android O).

+0

Czy wymyśliłeś możliwe rozwiązanie lub pomysł? Czy możemy go zastąpić rozszerzeniem? Ponieważ mam, jak sądzę, podobny problem, http://stackoverflow.com/questions/36971528/android-seekbar-talkback-talking-too-much – JSBach

+0

Przepraszamy za spóźnione opinie, ale nadal nie mam rozwiązania mojego problemu. – NamNH

+0

bez obaw. tak, też nie mam. Więc zrobiłem pustą etykietę i ruszyłem dalej. Jak się wydaje, Spotify też nie mógł tego rozwiązać. Miały podobny problem, gdy sprawdziłem. – JSBach

1

Wydaje się po prostu dodaje metodę setContentDescription(CharSequence contentDescription) do klasy MenuItem na API 26 (Android O)

+0

Tak, widziałem tę metodę jest teraz dostępna na "Android O Developer Preview", ale nie testowane. Ale mam nadzieję, że to zadziała. :). – NamNH

+0

Wydaje się działać dobrze. – sofakingforever

+1

również dodanie "app: contentDescription" (nie "android: contentDescription") do menu XML wydaje się działać we wcześniejszych wersjach. – sofakingforever

2

MenuItemCompat w bibliotekach wsparcia v4 ma

android.support.v4.view.MenuItemCompat.setContentDescription(MenuItem menuItem, CharSequence contentDescription) 

metodę wstecznej kompatybilności z pre -Oreo urządzenia.

Powiązane problemy