循环Horizo​​ntalScrollView

时间:2012-09-04 12:52:51

标签: android view android-linearlayout android-view horizontalscrollview

我想在Horizo​​ntallScrollView中循环视图。

示例:

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 . . . 

我正在寻找一种很好的方法来实现它!

2 个答案:

答案 0 :(得分:1)

对于HorizontalScrollView,这可能不太可行。正确编写的PagerAdapter - 为getCount()返回非常高的值并返回相同的N个视图的ViewPager可能能够使用PagerAdapter将其拉出。我不会使用任何内置的基于片段的{{1}}实现,因为这些实现可能会对视图回收违反的适配器行为做出一些假设。

答案 1 :(得分:0)

即使问题陈旧,也值得回答:)

简单获取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);
}

这将是一个持续的循环。