在很多应用中,需要实现滑动的效果,这时屏幕上的UI控件会随着手的滑动而发生偏移,这个效果有很多实现方式,在此稍作总结一下:
对于layout的位置移动,可以采用LayoutParams的方式。
步骤如下:
1. 首先获取需要移动的layout的布局参数:menuParams = (LinearLayout.LayoutParams) menu .getLayoutParams();
2. 然后设置新的参数:menuParams.leftMargin = leftEdge; menuParams.rightMargin = rightEdge;等等
3. 最后把新的参数应用到layout中:menu.setLayoutParams(menuParams);
对于单个的view,比如ImageView等简单的控件,可以直接使用setX与setY函数来实现位置的偏移。
当然还可以采用动画效果来实现偏移,这样可以使较长距离移动的效果更加平滑。
scrollTo()与scrollBy()
这两个函数需要注意一下,两者都只是移动View里的内容,非移动View本身。当移出View的范围时,将会被遮住不可见。所以需要移动layout中的view时可以考虑使用,比如ListView中内容的下拉刷新就可以用它来实现。但是如果是想移动单个的view本身,还是用setX/setY方法试一试。