画廊滚动图像后,移动3/4的屏幕

问题描述:

我正在做一个应用程序与画廊显示一些图像,当我滚动图像时,他们移动并跳到一定的点后。我如何让他们顺利?任何示例代码都会有很大的帮助。画廊滚动图像后,移动3/4的屏幕

我有类似的问题。看起来它可能是由布局的变化引起的,例如,如果您在具有wrap_content宽度的textview中更改文本。这种情况下布局更改,可能会强制库自行更新,并且它在当前项目上正确对齐。

我能够与布局玩解决它,设置固定的尺寸,我可以等,但我不知道有关永久和可靠的解决方案

编辑:我也发现了这个技巧,如果上面没有为你工作

http://www.unwesen.de/2011/04/17/android-jittery-scrolling-gallery/

+0

感谢洛佩,多数民众赞成有点帮助,但你可以请帮助我在布局设置视图大小,示例代码将有很大的帮助。再次感谢 – Jes

+0

每种布局都不同。一种观点有助于其他观点。这完全是关于层次结构,我不是那方面的专家:)我使用试错法来修复它。你可以开始在一些元素的高度和宽度上设置固定尺寸,或者在dp中,或者我认为match_parent在某些情况下也帮助了我 – Lope

+0

,这给了我一个解决它的想法,再次感谢 – Jes

我设法通过重写画廊父onLayout()方法,然后忽略在更改标志是不正确的任何电话来解决这个问题。

public class MyGallery extends Gallery { 

    public MyGallery(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    protected void onLayout(boolean changed, int l, int t, int r, int b) { 
     if (changed) { 
      super.onLayout(changed, l, t, r, b); 
     } 
    } 
} 
+1

希望我可以两次对这个游戏进行升级!谢谢! –

我发现上面的库扩展解决方案工作得很好。但是它仍然造成一些抖动。通过简单覆盖onLayout方法并查看屏幕上的视图数量,我最终获得了“光滑如丝”图库视图。 请注意,我将其用于全屏幻灯片效果。

public class SmoothGallery extends Gallery { 
    public SmoothGallery(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 


    @Override 
    protected void onLayout(boolean changed, int l, int t, int r, int b) { 
     int viewsOnScreen = getLastVisiblePosition() - getFirstVisiblePosition(); 
     if(viewsOnScreen <= 0) 
      super.onLayout(changed, l, t, r, b); 
    } 
}