CoordinatorLayout verwirrend setError Popup-Position

8

Ich sehe ein Problem mit EditText setError Popup-Position.

Ich verwende den folgenden Code, um das Layout zu erstellen:

activity_profile.xml

%Vor%

profile.xml

%Vor%

Was ich versucht habe

Wenn ich android.support.design.widget.CoordinatorLayout mit LinearLayout ändere, wird das setError Problem nicht passieren, aber das wird die Farbe der Statusleiste in weiß ändern und meine Benutzeroberfläche sieht seltsam aus.

Ich bin neu in der Android-Programmierung und nicht sicher, was los ist, bitte hilf mir.

    
Midhun MP 09.11.2015, 11:56
quelle

4 Antworten

2

Was für mich funktionierte, ist ein extra LinearLayout in activity_main.xml (ja, da):

%Vor%

Dies funktioniert auch um den Layout-Fehler, der angezeigt wird, wenn Sie die Sichtbarkeit einer Ansicht in einem Fragment umschalten.

Und das nächste Problem ist Weiß-in-Weiß-Fehlermeldung im Popup auf Android 2.x ( Link )

    
18446744073709551615 02.02.2016 00:17
quelle
0

Ich hatte das gleiche Problem. Als ich ein wenig die Benutzeroberfläche ausprobierte, stellte ich fest, dass das Problem auftrat, als das Widget EditText den Fokus programmatisch auf den Fehler brachte. In diesem Fall rief .requestFocus() auf, aber wenn ich das Widget wieder manuell fokussierte, erschien das Popup korrekt.

Meine Problemumgehung war also, den Aufruf von .requestFocus() in einem Runnable zu verzögern (simuliere einen Benutzer, der auf das Widget EditText klickt).

Hier ist der Code:

%Vor%

mFocusView ist die aktuelle EditText-Ansicht, um einen Fehler anzuzeigen.

Abhängig von Ihrem Anwendungsfall müssen Sie möglicherweise den Fokus behandeln, wenn die Tastatur geschlossen wird, da dadurch das Popup erneut an der falschen Position erscheint.

Weiß nicht, ob das dein Problem lösen wird. Hoffe es hilft, während Google dieses Problem löst.

    
Dmt 13.12.2015 19:45
quelle
0

Das war ein Android-Fehler und jetzt ist er behoben.

Referenz: Ссылка

    
Midhun MP 07.01.2016 19:25
quelle
0

Tatsächlich ist das Problem nicht CoordinatorLayout , sondern AppBarLayout.ScrollingViewBehavior . Als einfache Problemumgehung können Sie die Zeile app:layout_behavior="@string/appbar_scrolling_view_behavior" entfernen und android:layout_marginBottom="?attr/actionBarSize" zu Ihrer verschachtelten Ansicht hinzufügen, wenn Sie kein verschachteltes Scrollen benötigen.

    
Ivan Prymak 21.01.2016 17:45
quelle