Wie kann ich ein Ereignis in einer Ansicht in Android deaktivieren?
Meine Frage ist einfach: Wie deaktiviere ich ein Ereignis in einer Ansicht in Android? (Einschließlich des Entfernens seiner Fokussierbarkeit, als ob ich nur möchte, dass es visuell da ist, aber in allem anderen nicht vorhanden ist.) Und funktioniert es auf einem ganzen Ansichtsbaum? (Wenn ich beispielsweise Ereignisse im Stammverzeichnis deaktiviere, werden alle Ereignisse für die untergeordneten Elemente deaktiviert?).
Bevor Sie etwas sagen, habe ich Folgendes versucht:
setEnabledsetFocusablesetSelectedsetClickablesetActivatedUnd keine dieser Methoden scheint ernsthaft zu funktionieren.
Ich habe sie direkt an einem ausprobiertWebView
, sowie auf dem übergeordneten Layout auf alles, aber ich bin immer noch in der Lage, damit zu interagieren.
Irgendeine Idee?
Vielen Dank!
EDIT # 1
Die Lösung, die darin besteht, eine Ansicht über der Ansicht hinzuzufügen, die deaktiviert werden muss, funktioniert nicht. Eigentlich ist es immer noch möglich, auf die innere Ansicht zu klicken, ich habe es mit einem einfachen Beispiel versucht:
<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>
Hier ist es noch möglich auf das zu klickenbutton
.
EDIT # 2
Der Grund, warum ich das tun möchte, hängt mit dem zusammenfolgende Frage das habe ich vor wochen gefragt.
Was ich habe, ist einListView
fungiert als Navigationsleiste, die sich unter einemView
das hält den Inhalt meiner App. Das Problem bei dieser Implementierung ist, dass ich beim Scrollen durch dieListView
Wenn sich in der darüber liegenden Ebene eine fokussierbare Ansicht befindet, ist dieListView
scrollt nicht und stattdessen ist es die Draufsicht, die den Fokus erhält (das ist der Fall, wenn es eine gibtWebview
oder einEditText
usw.).
Also ja, wie in einer der Antworten erwähnt, kann ich alle Klickereignisse auf einem deaktivierenWebView
durch ÜberschreibensetOnTouchListener
Der Blick bleibt jedoch fokussiert und ich denke, dies ist der Grund, warum ich immer noch das gleiche Problem mit meiner Navigationsleiste habe.