我正在尝试创建一个可展开/可折叠的CardView
(根布局),我将在其中动态地向垂直LinearLayout (父布局)添加视图,特别是TextInputLayouts。添加视图后,我想调整布局的大小,使过程具有动画效果,以适应新添加的视图。我所做的是:
removeAllViews()
addView()
val previousMeasuredHeight = parentLayout.measuredHeight将父布局parentLayout.measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED)
val animator = ValueAnimator.ofInt(previousMeasuredHeight,measuredHeight) animator.addUpdateListener { valueAnimator -> layoutParams.height = valueAnimator.animatedValue as Int setLayoutParams(layoutParams) }val
我在这方面面临两个问题:
getMeasuredHeight()
而不是计算的顶部
我也尝试过使用RecyclerView
,但也存在一些问题,比如添加项目时不会显示,或者父布局不能正确调整大小
我该如何解决这些问题?
发布于 2018-06-10 00:14:36
试着看看animateLayoutChanges吧。
它看起来很适合你正在尝试实现的目标,而且应该会省去你自己计算高度和动画的麻烦。
https://stackoverflow.com/questions/50776145
复制相似问题