Как сделать так, чтобы Activity, использующая ScrollView И поддерживающая метод onTouch, работала правильно? - PullRequest
1 голос
/ 29 марта 2011

У меня есть Activity, которая заполняет два представления на ViewFlipper. Я добавил открытый логический метод onTouch (View v, MotionEvent) в Activity. Метод реализован таким образом, что когда человек нажимает на экран, ViewFlipper переходит к следующему представлению. Это прекрасно работает, но часть текста слишком длинная, поэтому я вошел в свой XML-файл и окружил текстовое поле в одном из моих представлений ViewFlipper линейным слоем, а затем ScrollView. Но теперь, когда я просматриваю слишком длинные поля и показываю полосу прокрутки, я не могу отобразить предыдущий вид. Метод onTouch в моей основной деятельности не выполняется. Я не смог понять это. Я прочитал несколько постов о реализации или переопределении методов в ScrollView, но я не знаю, где это можно сделать в моей деятельности. Кто-нибудь знает, как я могу запрограммировать ScrollView, чтобы он не перехватывал, но сохранял способность прокручивать представление?

1 Ответ

0 голосов
/ 01 декабря 2011

ScrollView myScroll;myScroll.setOnTouchListener (новый OnTouchListener) {

  @Override
  public boolean onTouch(View v, MotionEvent touchevent) {
    switch (touchevent.getAction()) {
    case MotionEvent.ACTION_DOWN: {
        oldTouchValue = touchevent.getX();
        break;
    }
    case MotionEvent.ACTION_UP: {
        float currentX = touchevent.getX();
        if (oldTouchValue < currentX) {
                       //left swipe
                       return true;

                     }
                     if (oldTouchValue > currentX) {
                       //right swipe
                       return true;
                     }

               return false;

  }

}

...