android-将图库滚动到下一页

android-将图库滚动到下一页,第1张

概述使用小部件.图库显示项目的水平滚动列表.我已经使用似乎是标准技术的方式在Gallery中实现了分页:将Gallery子类化并实现:@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){if(velocityX>0){onKeyDow

使用小部件.图库显示项目的水平滚动列表.我已经使用似乎是标准技术的方式在gallery中实现了分页:将gallery子类化并实现:

@OverrIDepublic boolean onFling(MotionEvent e1, MotionEvent e2, float veLocityX, float veLocityY) {        if (veLocityX>0) {            onKeyDown(KeyEvent.KEYCODE_DPAD_left, null);        } else {            onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);        }}

点按图库时,我会淡出下一个和上一个图像按钮.单击这些时,我希望图库分别显示到下一页/上一页.我尝试从我的下一个按钮处理程序调用onKeyDown,但是奇怪的是这没有效果.
Absspinner具有setSelection(int position,boolean animate)但在gallery中将忽略动画.

解决方法:

巨嘴鸟说的完全正确,但需要进一步详细说明(评论限制太短):

问题似乎在于,如果该位置还没有子代,则图库不允许用户滚动.当尝试注入事件时,scrolltochild()是元凶:

private boolean scrolltochild(int childposition) {    VIEw child = getChildAt(childposition);    if (child != null) {        int distance = getCenterOfgallery() - getCenterOfVIEw(child);        mFlingRunnable.startUsingdistance(distance);        return true;    }    return false;}

有趣的是,如果您用手指猛扑画廊,将导致创建孩子.然后,如果放开手指(回到原始位置),然后按下激活onKeyDown注射的按钮,它将完美无缺地工作-因为孩子在那里.

不幸的是,没有真正的解决方案,因为该类中的所有内容都是私有的.唯一的解决方案是使用setSpacing(-1)或图库中的某些内容,因此始终会创建并显示左,右子级,但它们仅在当前选定视图的后面.

作为一个脚注,我真的对为什么该类(或与此相关的任何其他AndroID小部件类)中的所有内容都是私有的感到困惑.这是一些很小的代码更改即可轻松解决的问题之一.

编辑(2012年8月):供以后参考,而不是尝试将gallery用于这种模式(当您希望用户在不同的项目中可见的同时在不同的项目之间滑动时),使用AndroID的compatibility package’s ViewPager class更好在我看来,兼容性软件包并没有得到应有的赞誉(花了我一段时间才注意到它).对于面向AndroID 2.x的开发人员来说,这真是天赐良机.

总结

以上是内存溢出为你收集整理的android-将图库滚动到下一页全部内容,希望文章能够帮你解决android-将图库滚动到下一页所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1083695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存