2013-09-22 5 views
2

Как сделать гладкую прокрутку с помощью viewpager на Google Glass? (в частности, viewpagerindicator lib). Я реализовал просмотрщики, и они работают, однако прокрутка по тачпаду быстро прокручивает просмотры. Я хотел бы иметь гладкую прокрутку, похожую на зеркальные api-меню. У кого-нибудь есть идеи? Я попытался перехватить touchhevents, используя приведенный ниже код, но переопределенные методы не вызываются. Кажется, что Glass принимает события касания и превращает их в события d-pad. OnPageScrolled (что бесполезно для того, что я делаю) вызывается, но другие методы - нет.ViewPager прокрутка на Google Glass

class MyViewPager extends ViewPager{ 
    public MyViewPager(){ 
    } 

@Override 
public void onPageScrolled(int arg0, float arg1, int arg2) { 
    // TODO Auto-generated method stub 
    super.onPageScrolled(arg0, arg1, arg2); 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent arg0) { 
    // TODO Auto-generated method stub 
    return super.onInterceptTouchEvent(arg0); 
} 

@Override 
public boolean onTouchEvent(MotionEvent arg0) { 
    // TODO Auto-generated method stub 
    return super.onTouchEvent(arg0); 
} 

}

ответ

3

Теперь вы можете использовать GDK-х CardScrollView (javadoc link) вместо ViewPager — он должен обладать всеми необходимыми функциями.

+0

Может ли CardScrollView поддерживать любой произвольный макет вида? В документации рекомендуется использовать объект карты, но на этих картах существуют некоторые серьезные ограничения, например, при загрузке более чем нескольких изображений прокрутка становится рывкой, и иногда приложение перестает реагировать. – johnarleyburns

+1

Да, вы можете вернуть «CardScrollAdapter» любые виды просмотров, а не только те, которые генерируются классом «Карта». –

+0

Это хорошо работает, намного лучше, чем Карты, поскольку изображения не являются GC'd и могут быть загружены асинхронно. Однако я не могу заставить полосу прокрутки слайдера отображаться внизу. – johnarleyburns

1

Я добавил к моему GestureDetector FragmentActivity, и вместо того, чтобы использовать событие OnScroll(), я использовал событие onFling(), чтобы вызвать изменение страницы.

Это является основой для GestureDetector: http://b2cloud.com.au/how-to-guides/capture-glass-d-pad-events-for-android

И тогда, когда бросок был обнаружен, я просто обновил страницу, как это:

protected void slideForward() { 
    viewPager.setCurrentItem(mPager.getCurrentItem() + 1); 
} 

protected void slideBackward() { 
    viewPager.setCurrentItem(mPager.getCurrentItem() - 1); 
} 
+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^