我想在 HorizontallScrollView 中循环视图。
例子:
HorizontalScrollView holding 5 Views
When swiping through the Views the behaivior should be like this:
1 -> 2 -> 3 -> 4 -> 5 -> 1 -> 2 . . .
Or backwards:
1 <- 5 <- 4 <- 3 . . .
我正在寻找一个很好的方法来实现它!
我想在 HorizontallScrollView 中循环视图。
例子:
HorizontalScrollView holding 5 Views
When swiping through the Views the behaivior should be like this:
1 -> 2 -> 3 -> 4 -> 5 -> 1 -> 2 . . .
Or backwards:
1 <- 5 <- 4 <- 3 . . .
我正在寻找一个很好的方法来实现它!
这对于HorizontalScrollView
. 一个正确编写的PagerAdapter
——一个返回非常高的值getCount()
并返回相同的 N 个视图的——可能能够用ViewPager
. 我不会使用任何内置的基于片段的PagerAdapter
实现,因为它们可能会对您的视图回收会违反的适配器行为做出一些假设。
好吧,即使问题很老,它也值得回答:)
简单地获取 scrollViews 的宽度或高度,并获取在 x/y 中滚动的量。
HorizontalScrollView scroller;
int scrollerWidth = scroller.getMeasuredWidth();
int scrollX = scroller.getScrollX();
int activeViewCount = 0;
activeViewCount = (activeViewCount > 0) ? activeViewCount - 1 : 0;
scroller.smoothScrollTo(activeViewCount * scrollerWidth, 0);
if (scrollX >= scrollerWidth) {
scroller.scrollTo(0, 0);
}
这将形成一个连续循环。