我想在单击布局中的按钮时将 LinearLayout 一半移出屏幕,当在移出布局的一半上单击按钮时,它会返回到其原始位置。
我知道这可以简单地通过使用翻译布局和将布局的 x 位置从 0% 移动到 -50% 并做相反的事情来完成。
我面临的问题是:
- 尽管布局被绘制了一半,但实际上并没有移动,即布局被绘制了,但其子项的坐标(用于接受点击)并未相应地移动到新位置。
有什么方法可以移动布局属性。我希望当第二次单击最初单击以将其移出一半的按钮时,将布局向后滑动。
我想在单击布局中的按钮时将 LinearLayout 一半移出屏幕,当在移出布局的一半上单击按钮时,它会返回到其原始位置。
我知道这可以简单地通过使用翻译布局和将布局的 x 位置从 0% 移动到 -50% 并做相反的事情来完成。
我面临的问题是:
有什么方法可以移动布局属性。我希望当第二次单击最初单击以将其移出一半的按钮时,将布局向后滑动。
This should give you a go:
@SuppressWarnings("unused")
private void setLeftMargin(int value) {
((LinearLayout.LayoutParams)myLinearLayout.getLayoutParams()).leftMargin = value;
myLinearLayout.requestLayout();
}
Usage:
ObjectAnimator.ofInt(this, "leftMargin",
0, -1 * halfWidth).setDuration(ANIM_DURATION).start();
and
ObjectAnimator.ofInt(this, "leftMargin",
-1 * halfWidth, 0).setDuration(ANIM_DURATION).start();
Read @damian's comment for animation libraries.