|
|
|||||
Контейнер прехватывает клики чилда
Есть вот такая конструкция:
Это заголовок аккордеона. Соответственно он является кликабельным. А вот это справа на нем тоже две кнопки. Хотелось бы чтобы и они были кликабельными Но не получается. Битый час лажу по форуму ниче найти не могу (но вроде как видел похожую тему). При клике на одной из маленьких кнопок - просто сворачивается-разворачивается панелька аккордеона (тюею отрабатывается "большой" клик). А у маленьких кнопок ни маусовер не работает ни маусклик. Нарыл что-то про stopPropagation, но или не до конца разобрался, или это не для моего случая. |
|
|||||
Регистрация: Oct 2005
Сообщений: 97
|
Все верно, две кнопки справа - внутри кликабельного заголовка аккордеона, поскольку он подписан на события мыши - он все перехватывает. Я сделал бы следующим образом, снял обработчик события с него, залез внутрь заголовка, сделал бы подложку мувиком и ловил бы клик на ней, две кнопки соответственно выше подложки и будут получать события мыши. Если у вас все на диспетчерах, то переписывать код аккордеона не придется.
|
|
|||||
Короче, сделал так:
Для данной задачи как по мне - то оптимальное решение, и ошибки юзабилити отсутствуют, а то как-то кнопка на кнопке не совсем по правилам построения интерфейсов А про события надо бы теории подчитать видимо..... |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Хм.
Хедер окна в Виндос - кликабельный. При этом на нем три кнопки и иконка-кнопка (просто ближайший пример). Нет такого "правила построения интерфейсов". И понимание событий тут не совсем при делах. Скорее надо разобраться с дисплей-листом. Даже если холодильник стеклянный - все равно надо открыть дверцу, чтобы достать сгущенку. Но если сгущенка стоит на столе на фоне холодильника, то можно и дверцу открывать, и сгущенку лопать. Если деньги в бумажнике - вы не можете положить их на стол, вы кладете бумажник. Вы совершаете действие с контейнером. Откройте контейнер (снимите с него мышиные слушатели) - и можете располагать всеми купюрами как хотите.
__________________
Reality.getBounds(this); |
|
|||||
Насчет хедера окна таки да, это загнался. Но всё-таки для этой задачи мое решение подходит. Ну не важно, вопрос решен...
Цитата:
//********************* Хотя только что пока отвечал дошло ваше сообщение Цитата:
Получится хедер как контейнер в котором равноправные элементы, которые не будут перекрывать друг друга: - маска - ловит основной клик по хедеру - кнопка1 - ловит свои клики - кнопка2 - ловит свои клики И получится типа сгущенка перед хододильником - маска-холодильник, - перед ней кнопка-схущенка, но связи никакой между ними нет, кроме того что они находятся в одной комнате (контейнере)... |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Точно. Только слово "маска" не надо использовать здесь - создает еще одну запутанность. У вас просто маленькие кнопки на фоне большой. И все в одном контейнере, который сам неактивен ("комнате")))
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 12:43. |
|
« Предыдущая тема | Следующая тема » |
|
|