Vorrei poter avere l'etichetta mobile già sul posto quando pre-popolamento il campo EditText. Quando viene caricata la vista, il suggerimento viene comunque visualizzato dietro al testo prima che venga animato sull'etichetta mobile. Non sembra esserci un metodo per questo in TextInputLayout della Support Library. qualche idea?Come disabilitare l'animazione di etichette fluttuanti quando si popolano i campi EditText avvolti in TextInputLayout
5
A
risposta
8
Con il supporto delle librerie di design v23 è possibile utilizzare:
til.setHintAnimationEnabled(false);
Qui potete trovare il javadoc.
0
risposta Gabriels basata Ho scritto un piccolo metodo per eseguire dopo aver caricato la gerarchia di visualizzazione che disabilita l'animazione nella visualizzazione iniziale ma la abilita dopo le protezioni. Aggiungi questo alla tua attività di base/Frammento/Visualizza e risolverà il problema.
private void setTextInputLayoutAnimation(View view) {
if (view instanceof TextInputLayout) {
TextInputLayout til = (TextInputLayout) view;
til.setHintAnimationEnabled(false);
til.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override public boolean onPreDraw() {
til.getViewTreeObserver().removeOnPreDrawListener(this);
til.setHintAnimationEnabled(true);
return false;
}
});
return;
}
if (view instanceof ViewGroup) {
ViewGroup group = (ViewGroup) view;
for (int i = 0; i < group.getChildCount(); i++) {
View child = group.getChildAt(i);
setTextInputLayoutAnimation(child);
}
}
}
Una nota, l'animazione deve essere disattivata prima di impostare il testo/suggerimento. Avere la sequenza sbagliata non disattiva l'animazione. – Elye
Ho provato questo, ma non funziona. – John
Non funziona !! qualche soluzione? –