Как щелкнуть взгляды за панелью инструментов?

У меня есть панель инструментов с прозрачным / полупрозрачным фоном, который накладывает содержимое. Таким образом, за панелью инструментов могут отображаться виды, которые можно щелкнуть. Проблема в том, что они не могут быть нажаты через панель инструментов, потому что панель инструментов захватывает событие click.

Я пробовал настройку android:clickable="false" , android:focusable="false" и android:focusableInTouchMode="false" для панели инструментов, но это не имеет никакого эффекта. Как отправить клик по панели инструментов в основное представление?

Solutions Collecting From Web of "Как щелкнуть взгляды за панелью инструментов?"

Взгляните на реализацию Toolbar . Он ест события касания , независимо от атрибута clickable .

 @Override public boolean onTouchEvent(MotionEvent ev) { // Toolbars always eat touch events, but should still respect the touch event dispatch // contract. If the normal View implementation doesn't want the events, we'll just silently // eat the rest of the gesture without reporting the events to the default implementation // since that's what it expects. final int action = MotionEventCompat.getActionMasked(ev); if (action == MotionEvent.ACTION_DOWN) { mEatingTouch = false; } if (!mEatingTouch) { final boolean handled = super.onTouchEvent(ev); if (action == MotionEvent.ACTION_DOWN && !handled) { mEatingTouch = true; } } if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { mEatingTouch = false; } return true; } 

Решение состоит в том, чтобы перейти от Toolbar и переопределить onTouchEvent .

 public class NonClickableToolbar extends Toolbar { @Override public boolean onTouchEvent(MotionEvent ev) { return false; } } 

Ваш дизайн необходимо отрегулировать. Вы не можете предоставлять интерактивные представления за прозрачной / полупрозрачной панелью инструментов. Вам необходимо предоставить верхнюю прописку, равную высоте панели инструментов, и / или реализовать шаблон быстрого возврата для панели инструментов.