Android 可见性.x27;t应用于自定义活动中的视图
我的应用程序中的每个活动在开始和结束时都有一个动画,因此我决定实现一个自定义活动类并从中继承我的活动:Android 可见性.x27;t应用于自定义活动中的视图,android,android-activity,android-animation,kotlin-android-extensions,custom-activity,Android,Android Activity,Android Animation,Kotlin Android Extensions,Custom Activity,我的应用程序中的每个活动在开始和结束时都有一个动画,因此我决定实现一个自定义活动类并从中继承我的活动: open class AnimatedActivity : Activity(), Animator.AnimatorListener { lateinit var expand : ObjectAnimator lateinit var shrink : ObjectAnimator lateinit var fadeIn : ObjectAnimator lateinit var fad
open class AnimatedActivity : Activity(), Animator.AnimatorListener {
lateinit var expand : ObjectAnimator
lateinit var shrink : ObjectAnimator
lateinit var fadeIn : ObjectAnimator
lateinit var fadeOut : ObjectAnimator
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
handleAnimation()
}
private fun handleAnimation() { //my animation code here }
override fun onAnimationEnd(p0: Animator?) {
when (p0) {
expand -> {
this.findViewById<View>(R.id.base).background = null
this.findViewById<View>(R.id.animCircle).visibility = View.GONE
this.findViewById<View>(R.id.opacityContainer).visibility = View.VISIBLE
fadeIn.start()
}
}
}
}
我的活动的onAnimationEnd
方法:
override fun onAnimationEnd(p0: Animator?) {
when (p0) {
shrink -> {
val data = Intent()
if (playerRoles.size == numberOfPlayers) {
data.putExtra("playerRoles", playerRoles)
setResult(RESULT_OK, data)
} else setResult(RESULT_CANCELED)
}
}
super<AnimatedActivity>.onAnimationEnd(p0)
}
override-fun-onAnimationEnd(p0:Animator?){
时间(p0){
收缩->{
val data=Intent()
if(playerRoles.size==numberOfPlayers){
data.putExtra(“playerRoles”,playerRoles)
setResult(结果正常,数据)
}else setResult(结果\u已取消)
}
}
super.onAnimationEnd(p0)
}
我知道它是被执行的,因为行this.findViewById(R.id.base).background=null
和this.findViewById(R.id.opacityContainer).visibility=View.VISIBLE
对它们影响的视图有影响-如果animcirle.visibility
设置为从xml消失,我可以看到视图
那么这里发生了什么,我如何让我的观点消失
更新
将id从animCircle
更改为另一个,然后在AnimatedActivity
中通过此id查找视图,解决了此问题。我想发生这种情况是因为我的MainActivity
布局有一个id相同的视图-animCircle
。所以问题是-那里发生了什么,为什么android搜索了错误的视图
override fun onAnimationEnd(p0: Animator?) {
when (p0) {
shrink -> {
val data = Intent()
if (playerRoles.size == numberOfPlayers) {
data.putExtra("playerRoles", playerRoles)
setResult(RESULT_OK, data)
} else setResult(RESULT_CANCELED)
}
}
super<AnimatedActivity>.onAnimationEnd(p0)
}