将onclick方法更改为带动画的大小

问题描述 投票:1回答:1

这可能是重复我在这里找不到任何可以帮助的东西。我希望当它被点击它不会只是捕捉到那个大小,我希望它慢慢变成目标大小。如果这是重复,请告诉我!如果你能提供帮助,请尝试解释它是如何工作的,这样我就可以更快地学习它是否有意义。

  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

    }

谢谢!添加任何评论可能会改进我的代码或任何东西!谢谢,请不要粗鲁!

android xml android-studio kotlin onclick
1个回答
1
投票

你应该检查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或更新版本。

© www.soinside.com 2019 - 2024. All rights reserved.