Ich habe ein Layout, das Fragen und Optionen anzeigt, wenn ich irgendwo anders als auf die Schaltflächen klicke, die ich zum Standardlayout umgeleitet habe. Ich würde gerne wissen, warum das passiert.
Meine Klasse
%Vor%Mein Design
%Vor%Ich hatte einmal einen Fehler, dass ein Klick auf den weißen Bereich von Fragment B ein onClick-Ereignis im vorherigen (unterliegenden) Fragment A verursachte. Ihr Problem klingt ähnlich wie ich, also nehme ich an, dass Sie auf ein "unsichtbares" klicken. Schaltfläche eines der enthaltenen, aber unsichtbaren Layouts.
Versuchen Sie also, dies dem übergeordneten RelativeLayout hinzuzufügen:
%Vor%Grund : Das liegt daran, dass Ihr vorheriger Bildschirm über den Listener für das übergeordnete Element verfügt, und wenn es in Ihrer Ansicht nicht vorhanden ist, übergibt es dieses Ereignis an die übergeordnete Ansicht.
Lösungen sind viele,
1) Fügen Sie die Zeile android:clickable="true"
in der aktuellen Ansicht Ihrer Aktivität / Ihres Fragments hinzu
2) Fügen Sie den folgenden Code in die aktuelle Aktivität / das Fragment onCreate()
3) Fügen Sie android:onClick=temp
zum übergeordneten Layout Ihrer Ansicht hinzu und erstellen Sie eine temp(View v)
-Methode in Ihrer Klasse.
4) Wenn es ein Fragment ist, fügen Sie vor dem Übergang commit()
diese Zeile .addToBackStack(null)
Versuchen Sie, die Methode onCreate () der setEnable (false) und / oder setClickable (false) -Methoden der Ansichten außer den Schaltflächen aufzurufen.
Aber vor allem sollten Sie die IDs, nicht die Ansichten direkt überprüfen:
%Vor%Wenn Ihnen die ID nicht gefällt, sollten Sie mindestens die Methode "equals ()" verwenden:
%Vor%Sehen Sie, ob es damit funktioniert