У меня есть ImageView
внутри listview
в левой большинстве position.This imageView
и listView
имеет все состояния (нажата, выбранный, сосредоточенный, нормальный) .Если я нажимаю ListView
но не ImageView
затем в некоторых устройствах вызывается состояние зависания (выбранное, сфокусированное, нажатое) ImageView
. Так что я хочу знать, как этого избежать.Избегайте ImageView парения состояние внутри Listview если элемент списка нажимается
ответ
Ниже перечислены шаги по устранению этой проблемы. Создайте класс NoParentPressImageView
со следующим кодом:
public class NoParentPressImageView extends ImageView {
public NoParentPressImageView(Context context) {
this(context, null);
this.setFocusable(false);
}
public NoParentPressImageView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setFocusable(false);
}
@Override
public void setPressed(boolean pressed) {
// If the parent is pressed, do not set to pressed.
if (pressed && ((View) getParent()).isPressed()) {
return;
}
super.setPressed(pressed);
}
}
Обратите внимание, что setFocusable(false)
в конструкторе имеет тот же эффект, что и добавление android:focusable="false"
к документу xml
макета. Это позволяет щелкнуть строки ListView
. Метод переопределения onPressed
решает проблему, которую вы упомянули здесь, а именно: события события в диапазоне ListView
(родительский), колеблющийся до ImageView
(дочерний элемент).
Как только вы определили этот класс, вы можете заменить ImageView
на ваш макет xml
с помощью com.MYCOMPANY.MYAPP.NoParentPressImageView
. Скомпилируйте и запустите, и ListView
теперь должен вести себя так, как вы ожидаете, при нажатии на события только нажатые события, только когда вы нажимаете на изображение, а не когда вы нажимаете в другом месте строки.
Постарайтесь добавить android:focusable="false"
в ImageView
в свой файл макета.
Sory, его не работает. –
- 1. Как удалить состояние парения, когда элемент перемещается
- 2. изменить элемент списка ListView
- 3. состояние нажимается ImageView с библиотекой Picasso не работает
- 4. ImageView вне родителя (элемент ListView) программно
- 5. парения состояние изворотливый
- 6. ImageView не доступен внутри ListView
- 7. Показать элемент списка ListView (ImageView) для другого действия
- 8. Манипулирование парения состояние
- 9. Dropdown парения состояние
- 10. Избегайте ImageView от масштабирования внутри TableRow
- 11. Элемент списка ListView выделен
- 12. Изменение размера изображения ImageView внутри ListView
- 13. Внутри ListView (ImageView не заменяет новое изображение)
- 14. Получить весь ImageView из пользовательского списка ListView
- 15. Android: ListView и элемент списка onClick action
- 16. Удалить элемент из списка, щелкнув ImageView
- 17. Элемент списка ListView
- 18. Удалить элемент списка ListView
- 19. Элемент списка элементов ListView
- 20. Элемент списка ListView: Android
- 21. Попытка программно установить состояние SWITCH внутри LISTVIEW после отображения списка.
- 22. сохранить состояние элементов внутри списка listview каждой строки
- 23. Если состояние Внутри fetch_array
- 24. если состояние внутри html
- 25. Если состояние внутри echo
- 26. Android-элемент списка ListView и запрос сервера
- 27. Добавление ImageView в элемент listView через ArrayAdapter
- 28. JQuery выпадающего меню парения состояние
- 29. Помните выбранное состояние RadioButton внутри списка
- 30. Переключатель android внутри listview получил начальное состояние после прокрутки
Его действительно приятно. Не забудьте добавить setFocusable (false). –