2015-08-03 3 views
1

Я хочу использовать отличные варианты дизайна в android.support.design, но есть проблема.TextInputLayout не работает правильно

Когда я установил действие на FocusChanged (setOnFocusChangedListener в андроиде) мой EditText внутри TextInputLayout, TextInputLayout не работает правильно и плавающий текст всегда оставаться на вершине EditText с акцентом цветом. (TextInputLayout не обновляется)

Есть ли способ решить эту проблему ?!

Я делаю свое приложение в xamarin но без проблем если вы дадите мне код Java.

ответ

1

Это правда, что когда вы устанавливаете пользовательский onFocusChangedListener для EditText, вы переопределяете onFocusChangedListener, но вы все равно можете использовать старый onFocusChangedListener. Для этого вам нужно получить его до переопределения.

final View.OnFocusChangeListener oldNameFocusListener = textInputLayout.getEditText().getOnFocusChangeListener(); 
    textInputLayout.getEditText().setOnFocusChangeListener(new View.OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      oldNameFocusListener.onFocusChange(v, hasFocus); 
     } 
    }); 

Эта проблема может быть найдена в старой библиотеке дизайна в новой версии (v23.0.0), эта проблема исправлена.

0

Я нашел ответ. Как бы то ни было, я применил переключатель в своем макете, и я увидел, что TextInputLayout обновлен, а плавающая метка изменилась, и я узнал, что если макет обновляет обновления TextInputLayout. Так что я просто добавить это к моему FocusChanged (onFocusChangedListener в андроиде) метод

((TextView)sender).Text = ((TextView)sender).Text;

0

При настройке пользовательских onFocusChangedListener для EditText перекрытия onFocusChangedListener, который был задан TextInputLayout. Таким образом, нет возможности использовать onFocusChangedListener с TextInputLayout.

Смежные вопросы