Сейчас я работаю над тем, чтобы отключить горизонтальную прокрутку horizontalscrollview (id: ordermenu), у которого есть scrollview (я имею в виду вертикальный scrollview. Id дочернего элемента scrollview относительнойlayout: category01layout, category02layout, ...) как дочерних.
Вот как это выглядит в XML:
HorizontalScrollView (ordermenu)
- LinearLayout
- ScrollView
- RelativeLayout (категория01layout)
- ScrollView
- RelativeLayout (категория02layout)
...
- ScrollView
- RelativeLayout (категория08layout)
На экране отображается один макет категории за раз, и когда я нажимаю кнопку «предыдущий / следующий», он устанавливает horizontalscrollview.smoothScrollTo () для изменения макета категории.
Поэтому, когда я запускаю приложение и выполняю прокрутку, мой палец прокручивает и HorizontalScrollView и ScrollView. Но я не хочу, чтобы мой палец слушал оба onScrollChanged. Я только хочу, чтобы ScrollView слушал мой палец, чтобы «только прокручивать вертикально». Поскольку я не знаю, как это сделать, ScrollView плавно прокручивает по вертикали, только если я прокручиваю в точном вертикальном направлении. В противном случае мой палец также прокручивает HorizontalScrollView, чего я не ожидал.
Так есть ли способ отключить горизонтальную прокрутку и включить только вертикальную прокрутку?
Ранее я использовал этот метод (создайте класс, расширяющий HorizontalScrollView)
@Override
protected void onScrollChanged(int x, int y, intoldx, intoldy){
if(Math.abs(x - oldx) <= 50){
mScrollable = false;
}
else {
mScrollable = false;
}
return;
}
Но это только вызвало большую нагрузку на пользовательский интерфейс, делая вертикальную прокрутку ScrollView слишком жесткой и медленной. Поэтому, пожалуйста, дайте мне другой способ, чем этот.
Заранее спасибо.