J'ai une liste ListView. A écrit un gestionnaire pour qu'il touche. Lorsque vous touchez l'élément de menu (ACTION_DOWN), je le souligne. Lorsque vous relâchez l'élément (ACTION_UP) - renvoie la couleur d'origine. Le problème est que si vous touchez et faites défiler - et ensuite l'élément est en surbrillance. Ou si vous touchez et déplacez votre doigt sur l'autre élément.ListView onTouch MotionEvent
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_DOWN) {
holder.tv_name_exercise.setTextColor(Color.parseColor("#fe9503"));
holder.tv_description_exercise.setTextColor(Color.parseColor("#ffffff"));
holder.row.setBackgroundResource(R.drawable.list_item_bg_active);
}
if (event.getAction()==MotionEvent.ACTION_UP) {
holder.tv_name_exercise.setTextColor(Color.parseColor("#000000"));
holder.tv_description_exercise.setTextColor(Color.parseColor("#666667"));
holder.row.setBackgroundResource(R.drawable.list_item_bg);
}}
j'ai essayé les deux. Avec un fond de travail. Avec le texte ne veut pas travailler. - fonctionne, mais state_pressed = "true" ne fonctionne pas. C'est pourquoi j'ai essayé d'utiliser MotionEvent. –
Pourriez-vous essayer de configurer android: duplicateParentState = "true" sur les TextViews? – alanv
Oui, sur TextView. Avec android: duplicateParentState = "true" - travail. Senks! –