Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何有人创建一个水平滚动列表,具有捕捉效果到中心大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
好!在过去的几个星期里,我一直在试图做到这一点,似乎找不到一个很好的解决方案,以达到我想要的目的.尝试使用Horizo​​ntalScrollView,Gallery(已弃用).

我现在正在研究RecycleView,因为我来了这个方法.smoothScrollToPosition(),并认为这可能会帮助我.

这是我想要完成的例证:

也必须能够以编程方式创建相关层

任何人都可以指出这可以如何实现?有什么本地的方法吗?

编辑:进一步了解@CommonsWare关于查看ViewPager和commonsware.com/blog/2012/08/20/ Dave Smith的第三篇文章的建议我认为这是要走的路. Havent模式对我的使用,但它看起来不错.

我正在使用他的Github:https://gist.github.com/devunwired/8cbe094bb7a783e37ad1的Dave Smiths样本

解决方法

不要使用这种方法,它会使用很多内存(如果在某些时候你需要扩展到一个更通用的解决方案),因为你将不得不在内存中保持高数量的ViewPager Pages(Fragment).我有同样的挑战,我已经用 HorizontalListView完成了这个.

所以你需要创建一个适配器,它将添加stubs”视图,以便获得第一个或最后一个(可以更多地取决于同一时间的所需可见视图),因为这是一个ListView.
对于捕捉效果,您可以使用这样的东西(所有项目需要具有相等的尺寸):

View.onTouchListener hListViewsOnTouchListener = new View.onTouchListener() {
            @Override
            public Boolean onTouch(View v,MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_UP && v instanceof HListView) {
                    View c = ((HListView) v).getChildAt(0);
                    int posToGo = Math.abs(c.getX()) < c.getWidth() / 2 ? ((HListView) v).getFirstVisiblePosition() : ((HListView) v).getFirstVisiblePosition() + 1;
                    ((HListView) v).smoothScrollToPositionFromLeft(posToGo,0);
                }
                return false;
            }
        };

这种方法不仅使用较少的内存,而且对于子视图的数量是通用的,它更流畅,所有元素都是可点击的(不仅是中心的)…它是一个ListView

本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。

大佬总结

以上是大佬教程为你收集整理的android – 如何有人创建一个水平滚动列表,具有捕捉效果到中心全部内容,希望文章能够帮你解决android – 如何有人创建一个水平滚动列表,具有捕捉效果到中心所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。