【发布时间】:2018-06-13 13:41:55
【问题描述】:
实际上,如果我点击 按钮,在我的应用程序中,LinearLayout 设置 onCreate at "height:0" 设置为 "height:630" 但没有任何动画并且它立即出现,所以不好看。
如何向它添加任何动画,例如它正在弹跳或刚刚出现?
这是我的onClick 代码,我将高度设置为布局
menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewGroup.LayoutParams params = recyclerContainner.getLayoutParams();
if(params.height == 0) {
params.height = 630;
recyclerContainner.setLayoutParams(params);
}else {
params.height = 0;
recyclerContainner.setLayoutParams(params);
}
}
});
我也尝试使用 BounceIterpolator 对其进行动画处理,但它仅对 LinearLayout 内的内容进行动画处理,而不是调整其大小
这是它的代码
menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewGroup.LayoutParams params = recyclerContainner.getLayoutParams();
if(params.height == 0) {
params.height = 630;
recyclerContainner.setLayoutParams(params);
BounceInterpolator bounceInterpolator = new BounceInterpolator();
ObjectAnimator anim = ObjectAnimator.ofFloat(recyclerContainner, "translationY", 100f, 0 );
anim.setInterpolator(bounceInterpolator);
anim.setDuration(1100).start();
}else {
params.height = 0;
recyclerContainner.setLayoutParams(params);
}
}
});
【问题讨论】:
-
嗯,看来你有web-dev背景...但是信不信由你,在android中,没有自动转换,你必须自己制作...你可以了解一下android中的动画here
-
这种动画可以使用BottomSheet
-
@SanjayKumar 看起来很有趣,但我一直在寻找更简单的东西,我的意思是我还没有在我的 LinearLayout 中实现 RecyclerView,所以我必须更改很多代码来实现它
-
@DudeCoder 我尝试将 BounceInterpolator 与 ObjectAnimator 一起使用,但问题仍然是动画有效,但调整高度的主要方法却没有。
标签: android android-animation android-linearlayout