| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Android > Custom View - два контрола в одном, как быть? |
| Автор: AleksPingvin 27.2.2012, 15:45 |
| Добрый день! Есть ListView с кастомным элементом. Кастомный элемент должен представлять собой некую кнопку с нужной обводкой, нужным градиентом, изображением приклееном к ее правой части и чекбоксом к левой, заданным текстом. Первое что я сделал создал свой класс и унаследовался от View. Перегрузил onDraw в котором рисую контур, заливаю градиентом, рендерю текст и картинку. А вот как засунуть в нее чекбокс (опять же не стандартный, а свой) пока не понял, ибо addView доступен только для наследников ViewGroup. С другой стороны я ведь пишу компонент, а не контейнер и наследоваться от существующих или от ViewGroup логически не корректно как-то. Думал попробовать в компоненте рендерить и чекбокс, но возникает вопрос как корректно отловить события его активации-деактивации. OnTouch конечно хорош, но мне кажется это не самое верное решение (боюсь будут ложные срабатывания из-за "дребезга" при касании пальцем области чекбокса) + надо отрабатывать и просто клик по кнопке. Как быть? |
| Автор: McBlob 27.2.2012, 16:44 |
| Собсна, если у Вас кастомный элемент есть набор из нескольких, то почему его не унаследовать от GroupView? Не понял зачем Вы перегружаете какойто onDraw когда надо перегрузить getView() BaseAdapter`a |
| Автор: AleksPingvin 27.2.2012, 17:09 |
| А кто вам сказал что я перегружаю onDraw у листа. Я речь вел про компонент кнопки. |
| Автор: McBlob 27.2.2012, 19:50 |
| Хорошо, а зачем перегружать onDraw() кнопки? Почему не назначить ей селектор в качестве бэкграунда? Я бы, на Вашем месте, нарисовал итем в XML`е, а потом применил бы его при помощи LayoutInflatter`a |