垂直方向のlinearLayoutがあるとしましょう:
[v1]
[v2]
デフォルトでは、v1にはvisibily = GONEがあります。展開アニメーションでv1を表示し、同時にv2を押し下げたいです。
私はこのようなものを試しました:
Animation a = new Animation()
{
int initialHeight;
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final int newHeight = (int)(initialHeight * interpolatedTime);
v.getLayoutParams().height = newHeight;
v.requestLayout();
}
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
initialHeight = height;
}
@Override
public boolean willChangeBounds() {
return true;
}
};
しかし、このソリューションでは、アニメーションの開始時に瞬きがあります。アニメーションが適用される前にv1がフルサイズで表示されることが原因であると思います。
javascriptでは、これはjQueryの1行です。アンドロイドでこれを行う簡単な方法はありますか?