2016-01-30 17 views
8

Ich frage mich, ob es möglich ist, das Etikett immer erweitert zu halten, unabhängig davon, ob es Text in der EditText gibt oder nicht. Ich schaute in der Quelle und es ist eine ValueAnimator und eine counter innerhalb einer TextWatcher zu animieren oder nicht animieren Änderungen. Vielleicht kann ich eine benutzerdefinierte TextWatcher mit einer benutzerdefinierten ValueAnimator auf der EditText innerhalb der TextInputLayout?Keep TextInputLayout immer fokussiert oder Etikett immer erweitert halten

Antwort

7

Die aktuelle Version der TextInputLayout existiert speziell, um eine Sache zu tun - zeigen/verstecken die Helferbeschriftung abhängig davon, ob es einen Text in der EditText oder nicht gibt. Was Sie wollen, ist ein anderes Verhalten, also brauchen Sie ein anderes Widget als das TextInputLayout. Dieser Fall ist der perfekte Kandidat für das Schreiben einer benutzerdefinierten Ansicht, die Ihren Anforderungen entspricht.

das gesagt ist, Ihre Idee, einen benutzerdefinierten TextWatcher zum EditText der Einstellung wird nicht funktionieren, weil TextInputLayout aussetzt nichts von Einbauten ist es, dass tatsächlich die Animationen handhaben - weder updateLabelVisibility(), setEditText(), die Magie Handler, die die Arbeit tut oder irgendetwas anderes. Natürlich wollen wir sicher nicht den Reflektionsweg für ein solches Detail gehen, also ...

Einfach verwenden! Es hat die folgende Eigenschaft, die genau das tut, was Sie wollen.

met_floatingLabelAlwaysShown: Immer das Floating-Etikett vorzeigen, statt es in/out Animieren. Falsch als Standard

Die Bibliothek ist ziemlich stabil (ich benutze es in zwei verschiedenen Projekten selbst) und hat viele Optionen zur Anpassung. Ich hoffe es hilft!

+0

Guten Fang in Bezug auf dem Material EditText lib verwenden funktioniert, habe ich das lib gesehen vor, aber ich denke, dass ich eine gewisse Logik extrapolieren kann eine benutzerdefinierte Komponente erstellen speziell für meinen Anwendungsfall: thumbs_up: – AndyRoid

+0

Ja, wie ich in meinem ersten Absatz gesagt habe - das ist ein perfekter Kandidat für eine benutzerdefinierte Textansicht. Viel Glück! – Vesko

+0

Ich stimme dieser Lösung zu, thx @Vesko – wanz

7

Für mich mit Unterstützung Design 23.3.0 es

   <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="wow such hint" 
       app:hintEnabled="true" 
       app:hintAnimationEnabled="false" 
       /> 
+0

Dies funktioniert nicht für v25.0.2; Label wird nicht erweitert, wenn der Text leer ist. –