我的代码如下,用于移动我的视图
private void movingViewUpDown(int topMargin) {
final RelativeLayout.LayoutParams layoutParams =
(RelativeLayout.LayoutParams) myView.getLayoutParams();
layoutParams.topMargin = topMargin;
myView.setLayoutParams(layoutParams);
}
效果很好,但每个动作似乎分配了一些内存,最终堆叠起来并需要GC来清除内存。所以事情会随着时间的推移而变慢。
我想知道是否有一种更有效的方式来移动我的视图,而不会让内存问题变得缓慢。
答案 0 :(得分:1)
View.setLayoutParams()实际上表现不佳,因为会触发requestLayout。事实上,你总是应该避免调用它来移动视图。
您可以尝试View.offsetTopAndBottom(int offset)
垂直移动或
水平View.offsetLeftAndRight(int offset)
,这将获得良好的表现。
答案 1 :(得分:0)
尝试使用View类中的animate方法 例如:
yourView.animate()
.translationY(translationY)
.setDuration(animationDuration)
.start();