2013-02-28 122 views
1

我想在布局中点击按钮时将LinearLayout的一半移出屏幕,并且当按下一半按钮移出布局时,它将返回到其原始位置。Android动画+移动布局

我知道这可以简单地通过使用翻译布局和将布局的x位置从0%移动到-50%来完成,并且相反。

我面临的问题是:

  • 虽然布局绘制半出它实际上没有移动即布局被抽出,但坐标(采取在点击)它的孩子都是不据此搬到新的位置。

是否有任何方法来移动布局属性。我想要当第一次点击的按钮将其移出一半时第二次点击回滚布局。

+0

试试这个:http://developer.android.com/reference/android/animation/ObjectAnimator.html - 对于较老的Android API:http://nineoldandroids.com/ – damian 2013-02-28 12:38:33

+0

我有同样的问题!! – Bhimbim 2014-03-21 06:45:45

回答

0

这应该给你一展身手:

@SuppressWarnings("unused") 
private void setLeftMargin(int value) { 
    ((LinearLayout.LayoutParams)myLinearLayout.getLayoutParams()).leftMargin = value; 
    myLinearLayout.requestLayout(); 
} 

用途:用于动画库

ObjectAnimator.ofInt(this, "leftMargin", 
      0, -1 * halfWidth).setDuration(ANIM_DURATION).start(); 

ObjectAnimator.ofInt(this, "leftMargin", 
      -1 * halfWidth, 0).setDuration(ANIM_DURATION).start(); 

阅读@达米安的评论。