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
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!
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"
/>
Dies funktioniert nicht für v25.0.2; Label wird nicht erweitert, wenn der Text leer ist. –
- 1. Keep Tastatur immer oben & sichtbar
- 2. Kontrolle immer sichtbar halten
- 3. Fenster immer oben halten?
- 4. keep MAX Timeout-Fehler immer auf urlencode
- 5. Wie wird SearchView immer in Android erweitert?
- 6. Sollte ich Instanzvariablen in Java immer initialisiert halten oder nicht?
- 7. WPF ListView Immer den zuletzt hinzugefügten Artikel fokussiert?
- 8. TextInputLayout: Unterschiedliche Farbe für Hinweis Etikett, wenn nicht
- 9. immer
- 10. Halten Sie den Cursor immer in Vim zentriert.
- 11. Batch Bilder umbenennen - aber halten Original-Datei, immer
- 12. * neu ist immer falsch. IMMER
- 13. randomize Javascript-Array Keep-Wert-Paare halten
- 14. Wie kann ich ein JLabel immer über einem JButton halten?
- 15. Halten Sie die Sitzung am Leben für immer als stackoverflow
- 16. Wie halten Sie die Tastatur immer auf dem Bildschirm?
- 17. Soll ich noch immer alle CSS in einer Datei halten?
- 18. Mac - eine Anwendung immer im Vordergrund halten - wie?
- 19. wie ein Optionsmenü halten immer auf dem Bildschirm
- 20. Laravel Befehl - Frage immer immer wahr?
- 21. Verilog: Unterschied zwischen `immer` und` immer @ * `
- 22. Wie immer immer die erste TAB
- 23. Verwendung von für immer und immer Anweisungen
- 24. IMMER im oberen Fenster
- 25. Warum strlen() immer 2 oder 1 zurückgibt?
- 26. Warum immer newInstance oder Objekt von Fragmenten
- 27. Halten td „erweitert“ auch wenn sie leer
- 28. Mobile Menü immer geöffnet
- 29. TextInputLayout Floating Label Schwerkraft
- 30. immer JA?
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
Ja, wie ich in meinem ersten Absatz gesagt habe - das ist ein perfekter Kandidat für eine benutzerdefinierte Textansicht. Viel Glück! – Vesko
Ich stimme dieser Lösung zu, thx @Vesko – wanz