0
我正在试图制作一个ScrollView,其中包含一个用户可以从中选择的数字列表。在用户触摸并滚动后,手指抬起后,我希望滚动“捕捉”到ScrollView中间的项目并给我输出。我的ScrollView包含一个带有TextView对象的垂直线性布局。 ScrollView的垂直尺寸约为60sp。如何在触摸后更改ScrollView的位置?
我认为这将涉及与ACTION_UP ScrollView.onTouch,但我不知道如何使用它。此外,有没有办法根据列表中的某个位置获取项目的索引或值?
谢谢!
现在我正在做的是制作一个带有linearLayout作为其子的ScrollView。 LinearLayout里面有一堆数字(100,125,150 ... 1000)。用户将触摸他的手指并拖动,直到所需的号码在中间(或最近)。手指被移除后,ACTION_UP,最接近中间的数字将被精确地锁定到中间(通过smoothScrollTo方式),中间数字将被选中和使用。这就是我想要做的。 – Matt 2010-06-18 00:52:05
我现在有这样的工作。我在做的是1)ACTION_UP我用.getScrollY()获取ScrollView的当前位置。 2)我使用一些数学来获得所需的滚动位置:((int)Math.round(posY/20)* 20)+ 10.注意数字20是项目之间的近似距离,10是中间的偏移。 3)我使用smoothScroll移动。 4)我用一些数学来计算列表中位于中间位置的数字。 5)我得到文本视图与(TextView)findViewById(R.id.(listview.getChildAt(x).getId()))。 6)我将文本转换为int。 – Matt 2010-06-18 01:02:01
很高兴你有它的工作..是否有你不想使用ListView的原因?它看起来更适合你的情况比scrollView。另外,你是否依赖像素数学呢?请记住,不同的手机有不同的分辨率,因此可能会出现问题。 – 2010-06-18 16:52:02