我的应用程序中有一个回收视图,每一行都包含一个按钮,该按钮在按钮下面的同一单元格中显示文本。我已经使用ChangeBounds转换使文本以平滑的动画出现,增加了行高,直到文本完全显示。所以当一个按钮被点击时,我会:
TransitionManager.beginDelayedTransition(row, transition)
holder.hiddenText.setVisibility(View.VISIBLE)它工作得很好,但有问题。隐藏的文本显示的动画,它增加了它的高度,如预期。但是行高不是动画,它从原来的高度跳到最后的高度,没有任何动画。
是否有任何方法来实现对行的高度过渡,同时增加文本?
发布于 2017-05-29 10:42:43
如果您也希望动画对row生效,那么您需要在row的一个较高层上执行beginDelayedTransition(),在您的示例中,这可能是实际的RecyclerView。
发布于 2017-05-26 10:41:10
在你的行布局上试试这个
public static void expand(final View v) {
v.measure(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
final int targetHeight = v.getMeasuredHeight();
// Older versions of android (pre API 21) cancel animations for views with a height of 0.
v.getLayoutParams().height = 1;
v.setVisibility(View.VISIBLE);
Animation a = new Animation()
{
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
v.getLayoutParams().height = interpolatedTime == 1
? LayoutParams.WRAP_CONTENT
: (int)(targetHeight * interpolatedTime);
v.requestLayout();
}
@Override
public boolean willChangeBounds() {
return true;
}
};
// 1dp/ms
a.setDuration((int)(targetHeight / v.getContext().getResources().getDisplayMetrics().density));
v.startAnimation(a);
}线性或相对布局的行将动画和扩展。希望这能解决你的问题
https://stackoverflow.com/questions/44199377
复制相似问题