Форум программистов, компьютерный форум, киберфорум
Наши страницы

OnTouch для элементов GridView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Место хранения файлов http://www.cyberforum.ru/android-dev/thread1488817.html
Здравствуйте! Я создал файл hello.html, где он будет находиться? Мне необходимо подгрузить его в Webview.
Программирование Android Genymotion и Virtual Box Скачал Genymotion, Virtual Box. При установке со всем соглашался. Запускаю Genymotion - выдает ошибку: Unable to load VirtualBox engine. Make sure that it is properly installed before starting... http://www.cyberforum.ru/android-dev/thread1488742.html
Программирование Android Как ускорить сборку в Android Studio?
В андроид студио сборкой занимается gradle. Что именно он делает, я не знаю, но явно что-то лишнее. Сборка простого java класса, выводящего одно сообщение, занимает как минимум 5 сек. Если то же...
Программирование Android Ошибка устоновки
Делаю все через pascalgui, и вот мое простенькое приложение: Program parol; Var a,b,c,d,e,f: integer; Begin write('Введите любое число:'); read(a); write('Второе число:'); read(d);
Программирование Android получить страницу из Webview http://www.cyberforum.ru/android-dev/thread1488645.html
Здравствуйте! Задача следующая получить страницу из Webview и сохранить ее в html файл. На прямую нельзя, так как перед сохранением пользователь должен произвести ряд действий по изменению...
Программирование Android Кнопка на всю ширину TableRow Как сделать, что бы кнопка занимала всю ширину TableRow? Добавлено через 33 минуты Добавил в TableLayout stretchColumns, равное * - заработало. подробнее

Показать сообщение отдельно
Ringov
0 / 0 / 0
Регистрация: 07.03.2015
Сообщений: 4

OnTouch для элементов GridView - Программирование Android

27.06.2015, 21:25. Просмотров 277. Ответов 0
Метки (Все метки)

Здравствуйте.

Дано:
GridView, наполненный View. Каждый из этих вью, по моей задумке, должен реагировать на четыре вида свайпа (вверх, вниз, влево, вправо) четырьмя различными действиями (код под спойлером).

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
        public boolean onTouch(View v, MotionEvent event) {
 
            int x = (int) event.getX();
            int y = (int) event.getY();
 
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    xDown = x;
                    yDown = y;
                    break;
                case MotionEvent.ACTION_UP:
                    xUp = x;
                    yUp = y;
 
                    int dx = xUp - xDown;
                    int dy = yUp - yDown;
 
                    //Обработка горизонтальных свайпов
                    if (Math.abs(dx) > Math.abs(dy)) {
                        if (dx == 0) {
                            return false;
                        }
                        if (dx > 0) {
                            //Действие 1
                        } else {
                            //Действие 2
                        }
                    }
 
                    //Обработка вертикальных свайпов
                    if (Math.abs(dy) > Math.abs(dx)) {
                        if (dy == 0) {
                            return false;
                        }
                        if (dy > 0) {
                            //Действие 3
                        } else {
                            //Действие 4
                        }
                    }
                    break;
                case MotionEvent.ACTION_CANCEL:
                    Toast.makeText(context,"Cancelled",Toast.LENGTH_SHORT).show();
                    break;
            }
            return true;
        }


История болезни:
Свайп влево-вправо работает на ура. Свайп вверх-вниз работает очень странно: срабатывает только при каких-то минимальных значениях смещения dy (8-10 пикс.). Если делать свайп длиннее - срабатывает событие ACTION_CANCEL.

После длительных размышлений моё предположение таково: мой собственный свайп, задаваемый для вьюшек внутри GridView конфликтует с вертикальным свайпом, отвечающим за прокрутку самого GridView. Причем происходит это даже в той ситуации, когда прокручивать нечего.

Вопрос, думаю, уже понятен: каким образом этот конфликт обойти или, возможно, воспользоваться каким-то иным подходом для реализации задуманного функционала?

Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru