这是一个关于Android ListViews、手势和动画的开放性问题。
我对Android中的手势不太熟悉,所以我正在寻找一些想法和灵感。
以下是两个屏幕截图和一个视频,展示了我正在思考的效果。建议观看视频,非常值得一看。
问题是,你如何实现一个“列表打开”手势,就像我在iPhone/iPad应用程序中越来越多地看到的那样,但适用于Android?
编辑1,想法1:
好的,第一个想法,据我所知,Pinch手势有点像拖动手势,所以我猜我们可以获取屏幕上两个手指的X和Y坐标?
接下来,这个问题的答案可能会有所帮助,基本思路是:
- 获取列表中第一个可见项的索引位置 - 获取列表中最后一个可见项的索引位置 - 从第一个索引到最后一个索引进行迭代,并使用getChildAt函数获取每个子项 - 对于每个子项,调用getLocationOnScreen方法以获取当前迭代项的坐标
问题是,你如何实现一个“列表打开”手势,就像我在iPhone/iPad应用程序中越来越多地看到的那样,但适用于Android?
编辑1,想法1:
好的,第一个想法,据我所知,Pinch手势有点像拖动手势,所以我猜我们可以获取屏幕上两个手指的X和Y坐标?
接下来,这个问题的答案可能会有所帮助,基本思路是:
- 获取列表中第一个可见项的索引位置 - 获取列表中最后一个可见项的索引位置 - 从第一个索引到最后一个索引进行迭代,并使用getChildAt函数获取每个子项 - 对于每个子项,调用getLocationOnScreen方法以获取当前迭代项的坐标
之后,在循环内部可以对捏手势坐标和每个项目坐标进行比较,以获取新行必须插入的两个项目。
除了性能方面的考虑外,我认为这可能有效,但也许有更简单的方法来获得这两个项目(?)
下一个是谁?:)
更新:
感谢@rhlnair的提示,我借此机会告诉大家,我已经开始在我的业余时间里着手处理这个问题,欢迎任何人提供帮助。
该项目位于https://github.com/arnaudbos/Android-GestureListView。我在两个不同的分支上开始了两个不同的实现,并且希望任何人创建一个新分支。
在“attemp-via-scale-gesture-detector”分支中,我有一些非常鼓舞人心的东西,但是在ListView中有一些副作用。
加油!