Вопрос по mouseevent, android – Мышь перемещается по двум представлениям, как позволить им обоим обрабатывать событие `ACTION_MOVE`

3

У меня есть два вида, больший - снизу, а меньший - сверху. Покажите на следующей картинке:

Теперь я нажимаю мышь на view1 (за пределами view2), затем перехожу к view2. Я обнаружил, что даже если во время движения мышь находится внутри view2, view2 won 'получитьACTION_MOVE событие. Только view1 может получить это.

Что я хочу:

Когда мышь находится внутри view1 и снаружи view2, пусть view1 обрабатываетACTION_MOVE событие. Если мышь переместится в view2, то пусть view2 обработаетACTION_MOVE событие.

Как это сделать?

PS: версия для Android 2.x

Ваш Ответ

1   ответ
1

Получить координаты мыши и view2, если мышь находится в границах view2, попробуйте то, что вы хотите. Или, если хотите, вы можете вызватьview2.onTouch метод, создайте класс touchlistener для V2, напримерV2TouchListener затем:

View v2 = ... ;
final V2TouchListener v2t = new V2TouchListener();
v2.setOnTouchListener(v2t);
v1.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        switch (action & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
            // do something
            break;
        case MotionEvent.ACTION_MOVE:
            // do something
            //if mouse is in bounds of view2 do this:
            //for example view is between x= 20 and x = 50
            if((event.getX() < 50) &&(event.getX() > 20) )
            v2t.onTouch(v2, event);
            break;
        }

        return false;
    }
});
Я думаю, что это единственное решение для Android 2.x, спасибо. Freewind
@Freewind Пожалуйста, смотрите мои правки. hasanghaforian

Похожие вопросы