Não é o fato de ficar dando requestFocus dentro do focusChanged?
Se mais componentes tem o mesmo vai ficar repetindo entre eles.
A
adriano_servitec
Achei que uma Thread resolveria…
public void AZFocusEdit(final EditText editGeneric,
final LinearLayout linear_generic, final OnThinkFocus focus) {
new Thread(new Runnable() {
public void run() {
editGeneric
.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (focus != null)
focus.onThinkFocus(v, hasFocus);
if (hasFocus) {
linear_generic.setBackgroundColor(Color
.parseColor("#6495ED"));
editGeneric.requestFocus();
} else {
editGeneric.clearFocus();
linear_generic
.setBackgroundColor(Color.TRANSPARENT);
}
}
});
}
}).start();
}
Apesar de não saber se fiz certo, mais também não deu certo não.
A
adriano_servitec
Marky.Vasconcelos:
Não é o fato de ficar dando requestFocus dentro do focusChanged?
Se mais componentes tem o mesmo vai ficar repetindo entre eles.
Olá Marky.Vasconcelos, tem alguma idéia como contornar este problema então? Pois utilizo em mais de um componente.
Apesar que comentei o requestFocus e deixei para colorir e fica lento do mesmo jeito, apenas se eu comentar as linhas de colorir e deixar transparente fica rápido.
Em vez de usar o LinearLayout estou usando pintar o EditText.
Marky.Vasconcelos
Voce da um clearFocus também, isso também invoca isso em outro componente, voce deve considerar apenas o hasFocus, pois quem perdeu vai estar false e quem ganhou vai estar true.
A
adriano_servitec
Marky.Vasconcelos:
Voce da um clearFocus também, isso também invoca isso em outro componente, voce deve considerar apenas o hasFocus, pois quem perdeu vai estar false e quem ganhou vai estar true.