Jak wyłączyć dowolne wydarzenie w widoku w systemie Android?
Moje pytanie jest proste: jak wyłączyć dowolne wydarzenie w widoku w Androidzie? (w tym usunięcie ogniskowania, tak jak chcę, żeby było tam wizualnie, ale na wszystkich innych jest nieistotne). Czy działa na całym drzewie widoku? (np. jeśli wyłączę zdarzenia w katalogu głównym, wszystkie zdarzenia zostaną wyłączone dla jego dzieci?).
Zanim cokolwiek powiesz, wypróbowałem wszystkie następujące rzeczy:
setEnabledsetFocusablesetSelectedsetClickablesetActivatedI żadna z tych metod nie wydaje się działać poważnie.
Próbowałem ich bezpośrednio na aWebView
, jak również na układzie rodzica we wszystkim, ale wciąż jestem w stanie z nim współdziałać.
Dowolny pomysł?
Dzięki!
EDYCJA # 1
Rozwiązanie polegające na dodaniu widoku do widoku wymagającego wyłączenia nie działa. Właściwie nadal można kliknąć na wewnętrzny widok, próbowałem prostym przykładem:
<code><?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#ff0000"> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Click Me!" /> </LinearLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00000000" /> </FrameLayout> </code>
Tutaj nadal można kliknąćbutton
.
EDYCJA # 2
Powód, dla którego chcę to zrobić, jest związany znastępujące pytanie zapytałem kilka tygodni temu.
Mam toListView
działając jako pasek nawigacyjny znajdujący się pod aView
który przechowuje zawartość mojej aplikacji. Problem z tą implementacją polega na tym, że próbuję przewijaćListView
kiedy na warstwie znajduje się widok z możliwością ogniskowania, dobrzeListView
nie przewija się, a zamiast tego skupia się widok z góry (tak jest w przypadku, gdy jestWebview
lubEditText
itp.).
Tak więc, jak wspomniano w jednej z odpowiedzi, mogę wyłączyć wszelkie zdarzenia związane z kliknięciem na stronieWebView
przez nadpisaniesetOnTouchListener
ale widok pozostaje skupiony i myślę, że to jest powód, dla którego wciąż mam ten sam problem z moim paskiem nawigacyjnym.