Sam tryb dotykowy jest bardzo łatwy do zrozumienia, ponieważ po prostu wskazuje, czy ostatnia interakcja użytkownika została wykonana z ekranem dotykowym. Na przykład, jeśli używasz telefonu G1, wybranie widżetu za pomocą trackballa spowoduje wyjście z trybu dotykowego;
...
W trybie dotykowym nie ma ostrości ani wyboru. Każdy wybrany element na liście lub w siatce staje się odznaczony, gdy tylko użytkownik przejdzie w tryb dotykowy. Podobnie, wszystkie widżety, na których skupiono się, tracą ostrość, gdy użytkownik przechodzi w tryb dotykowy.
...
Teraz, gdy wiesz, że fokus nie istnieje w trybie dotykowym, muszę wyjaśnić, że nie jest to do końca prawda. Fokus może istnieć w trybie dotykowym, ale w bardzo szczególny sposób nazywamy fokusem w trybie dotykowym. Ten specjalny tryb został utworzony dla widżetów, które odbierają tekst, takich jak EditText lub, gdy filtrowanie jest włączone, ListView.
...
Aktywowana w trybie dotykowym to właściwość, którą można ustawić samodzielnie za pomocą kodu lub XML. Należy go jednak używać oszczędnie i tylko w bardzo specyficznych sytuacjach, ponieważ narusza spójność z normalnym zachowaniem Androida. Gra jest dobrym przykładem aplikacji, która może dobrze wykorzystać właściwość, którą można ustawić w trybie dotykowym. MapView, jeśli jest używany w trybie pełnoekranowym, tak jak w Mapach Google, jest kolejnym dobrym przykładem tego, gdzie można poprawnie używać ustawiania ostrości w trybie dotykowym.
Miałem aplikację Google TV, która miała aktywność z dużą liczbą ImageButtons.
Chciałem, aby przyciski ImageButtons były dostępne.
Więc jeśli ktoś kliknie je myszą lub pilotem, zostaną one wybrane (w moim przypadku podświetlone). Następnie, jeśli użytkownik naciśnie wybrany ImageButton, akcja zostaje wyzwolona. To dokładne zachowanie osiągnięto poprzez włączenie focusableInTouchModewłaściwości za pomocą układu XML.
Wszystko, co musiałem zrobić, to ustawić zwykłe onClickListenerprzyciski ImageButtons i voila!
Nie sprawdzałem swojej aplikacji na słuchawce, ale myślę, że przyniosłaby znajomy wynik.
EDYTOWAĆ
Gdy?
Powiedziałem Ci przypadek użycia, który przetestowałem: Kiedy chcesz, aby Twój Button onClickListenerwyzwalał akcję przy drugim kliknięciu, po pierwszym kliknięciu i wybraniu Button.
Użyłem pierwszego kliknięcia, aby uzyskać „fokus” i wyświetlić animację powiększania powiększenia na moim przycisku.
W jaki sposób?
Wystarczy ustawić własność Buttona focusableInTouchModesię truew pliku XML szablonu.
Skupiony to stan widoku i ogólnie fokus można zmienić za pomocą trackballa i manipulatora. Twój widok może mieć inne tło, gdy koncentruje się na stanie.
Możliwość ustawiania ostrości w trybie dotykowym umożliwia skupienie się na widoku, gdy użytkownik dotyka widoku, dobrym przykładem jest tego rodzaju element EditText.
Z Buttonlub jakikolwiek klikalny komponent jest zwykle tym, co Cię interesuje.
„W przypadku przycisku lub dowolnego klikalnego komponentu należy skupić się na stanie wciśnięcia”. co? reszta odpowiedzi +1
ataulm
3
Użytkownicy mogą wchodzić w interakcję ze swoimi urządzeniami za pomocą klawiszy lub przycisków sprzętowych lub dotykając ekranu. Dotknięcie ekranu przełącza urządzenie w tryb dotykowy. Użytkownik może następnie wchodzić z nim w interakcję, dotykając wirtualnych przycisków na ekranie, obrazów itp.
Aby sprawdzić, czy urządzenie jest w trybie dotykowym, wywołaj metodę isInTouchMode () klasy View .
Odpowiedzi:
Jest to wyjaśnione na blogu programistów Androida: http://android-developers.blogspot.co.at/2008/12/touch-mode.html
Poniższe cytaty powinny to wyjaśnić:
...
...
...
źródło
Dam ci własne doświadczenie:
Miałem aplikację Google TV, która miała aktywność z dużą liczbą ImageButtons.
Chciałem, aby przyciski ImageButtons były dostępne.
Więc jeśli ktoś kliknie je myszą lub pilotem, zostaną one wybrane (w moim przypadku podświetlone). Następnie, jeśli użytkownik naciśnie wybrany
ImageButton
, akcja zostaje wyzwolona. To dokładne zachowanie osiągnięto poprzez włączeniefocusableInTouchMode
właściwości za pomocą układu XML.Wszystko, co musiałem zrobić, to ustawić zwykłe
onClickListener
przyciski ImageButtons i voila!Nie sprawdzałem swojej aplikacji na słuchawce, ale myślę, że przyniosłaby znajomy wynik.
EDYTOWAĆ
Powiedziałem Ci przypadek użycia, który przetestowałem: Kiedy chcesz, aby Twój Button
onClickListener
wyzwalał akcję przy drugim kliknięciu, po pierwszym kliknięciu i wybraniuButton
.Użyłem pierwszego kliknięcia, aby uzyskać „fokus” i wyświetlić animację powiększania powiększenia na moim przycisku.
Wystarczy ustawić własność Buttona
focusableInTouchMode
siętrue
w pliku XML szablonu.źródło
Skupiony to stan widoku i ogólnie fokus można zmienić za pomocą trackballa i manipulatora. Twój widok może mieć inne tło, gdy koncentruje się na stanie.
Możliwość ustawiania ostrości w trybie dotykowym umożliwia skupienie się na widoku, gdy użytkownik dotyka widoku, dobrym przykładem jest tego rodzaju element
EditText
.Z
Button
lub jakikolwiek klikalny komponent jest zwykle tym, co Cię interesuje.źródło
Użytkownicy mogą wchodzić w interakcję ze swoimi urządzeniami za pomocą klawiszy lub przycisków sprzętowych lub dotykając ekranu. Dotknięcie ekranu przełącza urządzenie w tryb dotykowy. Użytkownik może następnie wchodzić z nim w interakcję, dotykając wirtualnych przycisków na ekranie, obrazów itp.
Aby sprawdzić, czy urządzenie jest w trybie dotykowym, wywołaj metodę isInTouchMode () klasy View .
źródło