捕捉水平滚动条(不同的项目宽度)

时间:2015-11-20 20:00:48

标签: android scrollview android-scrollview horizontalscrollview snapping

我浏览了很多不同的帖子,但我找不到任何有效的解决方案。 有许多捕捉水平滚动条的解决方案,但是如果项目具有相同的大小,它们中的每一个都有效。

我会举一个小例子:

屏幕能够显示300px的宽度。 滚动条内的项目可以有不同的大小,例如:

  • 1:300px
  • 2:300px
  • 3:500px
  • 4:400px

如果*是100px:

,整个布局将如下所示
>> A = [2 3 4 5 6 7]'; %'
>> K = 2;
>> output = conv(A, ones(K,1), 'valid');
>> output = output(1:K:end)

output =

     5
     9
    13

>> K = 3;
>> output = conv(A, ones(K,1), 'valid');
>> output = output(1:K:end)

output =

     9
    18

现在,滚动条应该恰好位于项目的开头/结尾处。 前两个项目很容易,因为它们具有与屏幕相同的大小。但对于其他人,我无法想出是否有效的解决方案。

因此,如果滚动到第三个项目,滚动条应该会在屏幕左侧第3项的开头处对齐。 ('!' =屏幕尺寸)

  1    2     3     4
[***][***][*****][****]

如果几乎​​滚动到第4项,滚动条应该恰好位于屏幕右侧第3项末尾的位置。

  1    2     3     4
[***][***]![***!**][****]

这很难解释。我希望你能理解我的问题。

0 个答案:

没有答案