使用小部件.图库显示项目的水平滚动列表.我已经使用似乎是标准技术的方式在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-将图库滚动到下一页所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)