У меня есть пейджеры с двумя представлениями в линейном макете, занимающем одинаковое количество экрана. Я хочу сделать так, чтобы, если пользователь проскакивает где-нибудь на экране, тогда салфетка должна быть только для нижнего viewpager. Я попытался увеличить делегат, но это не сработало.Сделать скрипит на одном просмотрщике на другом
0
A
ответ
1
Ну, вы пытаетесь найти какой-нибудь странный материал! Я бы предложил создать класс CustomViewPager для второго viewpager, который может иметь экземпляр первого viewPager.
public class CustomViewPager extends ViewPager {
private ViewPager firstViewPager;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(firstViewPager!=null){
firstViewPager.onTouchEvent(event);
}
return super.onTouchEvent(event);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if(firstViewPager!=null){
firstViewPager.onInterceptTouchEvent(event);
}
return super.onInterceptTouchEvent(event);
}
public void setFirstViewPager(ViewPager firstViewPager) {
this.firstViewPager = firstViewPager;
}
}
В этом вы передаете событие движения, которое вы получаете в второй ViewPager-х onTouchEvent
и onInterceptTouchEvent
к 1-му ViewPager. Вы также хотите отключить прокрутку на первом просмотрщике, который вы можете сделать, как описано here.
+0
И поскольку вы упомянули 'touch delegate', я предполагаю, что вы с фона iOS :) Удачи с вашим Android-приложением! – Antrromet
Смежные вопросы
- 1. Отображение нескольких отчетов в одном просмотрщике отчетов
- 2. Голос на одном языке на другом языке
- 3. Пустая страница на веб-просмотрщике отчета BIRT
- 4. Эффективный скрипит экрана в Ruby
- 5. Загрузить данные формы на одном сервере, изображение на другом сервере
- 6. JavaScript не работает на одном сайте, но отлично на другом
- 7. Функция выхода работает на одном сервере не на другом?
- 8. Django сервер на одном компьютере, клиент на другом компьютере
- 9. Почему _mysql.co, скомпилированный на одном Mac, не работает на другом?
- 10. «Требовать» работает на одном компьютере, но не на другом
- 11. touchstart на одном элементе, перетаскивание, касание на другом элементе
- 12. DNS: есть домен на одном сервере и файлы на другом
- 13. Код VBA - быстрый на одном компьютере, медленный на другом
- 14. Группировка и заказ на одном уровне, показывая рассчитывает на другом
- 15. Создавать AntiForgeryToken на одном сайте и проверять на другом?
- 16. Журналы Python, работающие на одном pycharm, а не на другом
- 17. Редактирование скриптов perl на одном сервере, но выполнение на другом
- 18. PHP работает на одном сервере, но не на другом
- 19. Почему ajax работает на одном сервере, а не на другом?
- 20. SerializationException на одном компьютере, а не на другом
- 21. clearInterval на одном узле, пока таймер продолжается на другом
- 22. Хостинг веб-приложения на одном сервере и рендеринг на другом
- 23. Рельсы: изображения на одном сервере, CSS и Javascript на другом
- 24. PHP-код, работающий на одном сервере, а не на другом
- 25. "set: незаконный вариант -" на одном хосте, но не на другом
- 26. preg_match работает на одном сервере, но не на другом
- 27. FileSystemWatcher на одном сервере, просматривая папку на другом сервере
- 28. fwrite плавает на одном компьютере, чтобы быть fread на другом
- 29. Vagrant Up положения на одном компьютере, но не на другом
- 30. requireJS работал на одном подключаемом модуле, но не на другом
Если вы хотите, чтобы салфетка работала только для второго зрителя, почему у вас даже есть первый просмотрщик на месте? – Antrromet
2-й просмотрщик программно проделывает 1-й просмотрщик, чтобы дать ему эффект задержки. – MikeC