Как оживить Fadeout и Fadein, пока TextView изменил текст
-
30-09-2019 - |
Вопрос
Я пытаюсь анимировать TEXTVIEW на ChangeText, но всегда вижу только одно направление анимации, я вижу только Fadeout
Что я пытаюсь: Beforchange = Fadeout и Onchange или после Fadein
Вот мой код в методе Onreate моего действия:
final Animation out = new AlphaAnimation(1.0f, 0.0f);
out.setDuration(1000);
final Animation in = new AlphaAnimation(0.0f, 1.0f);
in.setDuration(1000);
bidFirst.setAnimation(out);
bidMiddle.setAnimation(out);
bidLast.setAnimation(out);
TextWatcher bidWatcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
in.startNow();
bidFirst.setAnimation(out);
bidMiddle.setAnimation(out);
bidLast.setAnimation(out);
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
out.startNow();
bidFirst.setAnimation(in);
bidMiddle.setAnimation(in);
bidLast.setAnimation(in);
}
public void afterTextChanged(Editable s) {
}
};
bidFirst.addTextChangedListener(bidWatcher);
bidMiddle.addTextChangedListener(bidWatcher);
bidLast.addTextChangedListener(bidWatcher);
Я думаю, что в моем коде что-то не так, но за мою верю, что он должен работать.
То, что у меня сейчас есть: на каждом Settext измененный текст только Fadeout, но после того, как текст изменился и никогда не заканчивается!?
Решение
TextsWitcher - это именно то, что вы ищете. Просто используйте их setInAnimation()
а также setOutAnimation
. Отказ Чем анимации будут работать автоматически, если вы измените текст setText()
Другие советы
По внешнему виду вашего кода вы говорите текстовое представление, чтобы исчезнуть после изменения, а не исчезнуть.
Также я не уверен, насколько эффективен этот код, как BEFORETEXTCHANGED, призван только моменты, прежде чем текст изменен. Там просто будет достаточно времени для любой анимации, чтобы произойти на BeForextChanged, поскольку он будет мгновенно заменен вашим кодом в OnTextChanged
Редактировать** Ответить на комментарий ниже
Итак, чтобы получить TextView для исчезновения, то выцветайте с новым контентом, я бы программно запустил анимацию Fadeout, а не использовать текстовой дорожнику. Я бы дал анимацию Fadeout АнимацияListener. И на анимации вы можете затем установить новый текст перед началом анимации Fadein.