Android ViewPager с сенсорными / фокусируемыми объектами - PullRequest
1 голос
/ 02 марта 2012

У меня есть ViewPager, который содержит представления, которые добавляются динамически (накачаны из XML) и управляются PagerAdapter.Добавляемые виды имеют несколько простых EditTexts и SurfaceView, который содержит сенсорную диаграмму.

Чтобы убрать фокус из EditTexts, когда пользователь просматривает страницы, я последовал этому предложению и добавил следующее к динамически добавленному макету представления:

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"

Это сработало отлично, но это породило новую проблему.Пользователь также должен иметь возможность прикоснуться к диаграмме в SurfaceView, но SurfaceView регистрирует каждое касание как 2 касания (если я удаляю вышеупомянутые атрибуты XML, он работает правильно, но тогда у меня возникает проблема с фокусировкой EditText).

Я пробовал разные варианты вышеупомянутых атрибутов XML (делая некоторые истинными, а некоторые ложными), но это не дало желаемого результата.Я также попытался добавить OnFocusChangeListener в EditTexts, чтобы вышеприведенные атрибуты были бы истинными, если бы у любого из них был фокус, и ложь в противном случае.

Я провел некоторый поиск, но не смог найти то, что искал - любая помощьбудет принята с благодарностью.

1 Ответ

2 голосов
/ 02 марта 2012

Вы используете onTouchEvent?Если это так, он регистрируется для:

ACTION_UP
ACTION_DOWN
ACTION_MOVE
and more

Вы можете сказать, что происходит, и обрабатывать только события ACTION_UP, например:

public boolean onTouchEvent(MotionEvent event)
{
    int action = event.getAction();

    //When the user lifts up...
    if (action==MotionEvent.ACTION_UP) 
    {
        //Do something here
    }
}

Возможно, поэтому вы выбрали два касания.

...