这可能是重复我在这里找不到任何可以帮助的东西。我希望当它被点击它不会只是捕捉到那个大小,我希望它慢慢变成目标大小。如果这是重复,请告诉我!如果你能提供帮助,请尝试解释它是如何工作的,这样我就可以更快地学习它是否有意义。
layoutSmallerButton.setOnClickListener{
val layoutShrink = linearLayout2.layoutParams as RelativeLayout.LayoutParams
layoutShrink.height = 0
linearLayout2.layoutParams = layoutShrink
val buttonSmaller = layoutSmallerButton.layoutParams as LinearLayout.LayoutParams
buttonSmaller.height = 0
layoutSmallerButton.layoutParams = buttonSmaller
val buttonLarger = layoutLargerButton.layoutParams as RelativeLayout.LayoutParams
buttonLarger.height = 50
layoutLargerButton.layoutParams = buttonLarger
val internetViewLarger = internetView.layoutParams as RelativeLayout.LayoutParams
internetViewLarger.height = 1700
internetView.layoutParams = internetViewLarger
}
谢谢!添加任何评论可能会改进我的代码或任何东西!谢谢,请不要粗鲁!
你应该检查Property Animation了。
这是你可以做的事情:
layoutSmallerButton.setOnClickListener{
animateHeightOfView(layoutShrink, 0)
animateHeightOfView(buttonSmaller, 0)
animateHeightOfView(buttonLarger, 50)
animateHeightOfView(internetViewLarger, 1700)
}
fun animateHeightOfView(view: View, targetHeight: Int, animationDuration: Int = 1000){
ObjectAnimator.ofInt(view, "height", targetHeight).apply{
duration = animationDuration
start()
}
}
编辑:如果您使用的是ConstraintLayout(建议使用),则可以使用ConstraintSet进行动画制作。它很容易实现,您可以在XML文件中预览整个布局(前后)。
但它需要Android KitKat或更新版本。