我有一个扩展ScrollVIEw和覆盖的视图的实现
protected boolean overScrollBy(int deltaX,int deltaY,int scrollX,int scrollY,int scrollRangeX,int scrollRangeY,int maxOverScrollX,int maxOverScrollY,boolean istouchEvent) { ... return super.overScrollBy(deltaX,deltaY,scrollX,scrollY,scrollRangeX,scrollRangeY,metrics.wIDthPixels,istouchEvent); }
在每个其他设备上(姜饼和当然),当滚动器到达它结束时调用overScrollBy,并且用户实际上可以过度滚动视图).
在AndroID 2.3.5上,三星实施了一种完全禁用过度滚动的机制(不仅仅是他们的过度滚动实现,还包括AndroID的实现),每次用户尝试过度滚动时,都会打印以下LogCat事件:
02-13 16:02:34.230: D/BounceScrollRunnableDefault(15783): run(),TimeFraction=0.5225,mBounceExtent=7.273352
有没有办法解锁三星在那里做的事情?或者也许是另一种创建过度滚动的方法?
解决方法 我刚遇到同样的问题,最后提出了以下自定义过卷检测:ListVIEw.setontouchListener(new OntouchListener() { private static final float OVERSCRolL_THRESHolD_IN_PIXELS = 70; private float downY; @OverrIDe public boolean ontouch(VIEw v,MotionEvent event) { int firstVisibleItem = ListVIEw.getFirstVisibleposition(); int totalitemCount = ListVIEw.getCount(); int visibleItemCount = ListVIEw.getChildCount(); boolean ontop = firstVisibleItem == 0 && ListVIEw.getChildAt(0) != null && ListVIEw.getChildAt(0).gettop() == 0; boolean onBottom = firstVisibleItem + visibleItemCount == totalitemCount && ListVIEw.getChildAt(visibleItemCount-1).getBottom() == ListVIEw.getHeight(); if(ontop || onBottom) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: downY = event.getY(); break; case MotionEvent.ACTION_MOVE: float deltaY = event.getY() - downY; if(ontop && deltaY > OVERSCRolL_THRESHolD_IN_PIXELS) { // top overscroll } if(onBottom && -deltaY > OVERSCRolL_THRESHolD_IN_PIXELS) { // Bottom overscroll } break; } } return false; } });总结
以上是内存溢出为你收集整理的android – 三星Galaxy S2 2.3.5没有调用overScrollBy()全部内容,希望文章能够帮你解决android – 三星Galaxy S2 2.3.5没有调用overScrollBy()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)