Ich suche nach einer Möglichkeit, die Benutzeroberfläche zu sperren, zum Beispiel, wenn ich "Sperren" aus dem Optionsmenü wählen, wird die Benutzeroberfläche von Berührungen blockiert werden. Es ist eine Art Overlay mit einer Art Sperrsymbol über die Benutzeroberfläche hinzuzufügen. Habt ihr irgendwelche Vorschläge? Vielen Dank!So sperren Sie die Benutzeroberfläche?
Antwort
Müssen Sie das bei mehreren Aktivitäten oder nur einer tun? Wenn es nur eins ist, fügen Sie eine transparente ViewGroup (MatchParent, Parent) zum Anfang Ihrer Ansichtshierarchie hinzu. Lass es standardmäßig los. Fügen Sie dann in OnCreate() einen OnTouchListener hinzu, der immer true zurückgibt (was bedeutet, dass er die Berührung berücksichtigt hat); Dann, wenn Sie es brauchen, machen Sie es einfach "Sichtbar".
Erläuterung: Wenn Sie es oben einfügen, wird es zur obersten Ebene in der Ansichtshierarchie. Es wird also zuerst Berührungsereignisse erhalten, die Sie dann ablehnen, indem Sie dem Anrufer des Zuhörers treu bleiben.
Um das gesamte Fenster der Aktivität unantastbar zu machen, nennen dies:
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
es berührbaren wieder zu machen, rufen
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
Obwohl dies eine ANR verursachen kann ... wenn Sie können umgehen, dass dann das ist die einfachste Methode, sonst was Bitbox sagte möglicherweise die passende Lösung
Vielen Dank für Ihren Vorschlag, aber wegen der ANR verwende ich die Bitbox-Lösung. –
- 1. So sperren Sie eine Datenbank in mysql
- 2. So sperren Sie eine einzelne Zeile
- 3. So aktivieren Sie die Swagger-Benutzeroberfläche in Azure Easy API
- 4. So automatisieren Sie die Chrome-Erweiterung mit der codierten Benutzeroberfläche?
- 5. So sperren Sie die Taste nach dem Drücken
- 6. So verhindern Sie, dass Team Foundation die Sperren rückgängig macht
- 7. So sperren Sie ausschließlich eine Zeile, die CRUD-Betrieb verhindern
- 8. So sperren Sie die iPad/iPhone-Orientierung vorübergehend
- 9. So sperren Sie die Kamera in Google Maps API V2
- 10. Sperren Sie die Steuerung auf Bildschirmposition
- 11. Ändern Sie die gesamte Benutzeroberfläche auf Orientierungsänderung
- 12. So erstellen Sie GUI (grafische Benutzeroberfläche) für standalong ausführbare Binärdatei
- 13. So sperren Sie eine Datei gegen externe Prozesse
- 14. So sperren Sie ein bestimmtes Stück Code C#
- 15. So sperren Sie das Ansichtsfenster in Hochformatausrichtung in HTML5/CSS3
- 16. Wie sperren Sie Textfelder?
- 17. So sperren Sie Windows (wie "Windows + L") von .NET?
- 18. Android: So erstellen Sie Tabs wie die, die auf der Android-Benutzeroberfläche angezeigt werden Seite
- 19. Aufgabe und entsperren die Benutzeroberfläche
- 20. Sperren Sie ein Winforms-Steuerelement
- 21. Welche LogParser-Benutzeroberfläche verwenden Sie?
- 22. Navigieren Sie die Benutzeroberfläche nur mit der Tastatur
- 23. Wie implementieren Sie eine Benutzeroberfläche, die der Benutzeroberfläche von Lollipop für jüngere Apps ähnelt?
- 24. erstellen Sie einen Index ohne die DB zu sperren
- 25. So verwenden Sie die vorhandene Windows-Funktionalität zum Extrahieren von Text aus der Benutzeroberfläche
- 26. So aktualisieren Sie die Benutzeroberfläche nach dem asynchronen Task in viewmodel
- 27. So aktualisieren Sie die Benutzeroberfläche von Button Event (oder einer anderen Aufgabe)
- 28. So passen Sie die App-Benutzeroberfläche auf verschiedenen Bildschirmen an W10 an
- 29. So sperren Sie die Telefonausrichtung in Android, um den Querformatmodus zu verhindern
- 30. So sperren Sie die Daten in einer Zelle in Excel mit vba
Danke, Ihre Idee funktioniert super! Es ist nur so, dass ich die oberste ViewGroup nicht transparent machen kann, so dass die darunter liegenden Ansichten noch sichtbar sind. Oder mache ich etwas falsch? Können Sie mir das XML-Layout oder einen Code geben? –
Ok vergiss es, ich habe es :). –
Können Sie teilen, was Ihr Problem war? Jemand anderes könnte eines Tages darauf stoßen. –