kotlin - Runnable not running on floating action bar on Android -


i have been trying fab rotate , change icon reason runnable doesn't work @ all.

here code :

private val handler: handler = handler() private var isrotate: boolean = false private val rotate: animation =   rotateanimation(0.tofloat(),90.tofloat(),0.tofloat(),0.tofloat())  private val r: runnable = runnable {     fun run() {             if (isrotate) {                 fab2.setimagedrawable(resourcescompat.getdrawable(resources, r.drawable.ic_menu_camera, null))                 isrotate = false             } else {                 fab2.setimagedrawable(resourcescompat.getdrawable(resources, r.drawable.ic_menu_gallery, null))                 isrotate = true             }         }     }  override fun oncreate(savedinstancestate: bundle?) {      ...      rotate.duration = 1000     rotate.repeatcount = 0     rotate.repeatmode = animation.reverse     rotate.fillafter = true      fab2?.setonclicklistener { view ->                objectanimator.offloat(view,"rotation",0.tofloat(),90.tofloat()).setduration(800).start()     view.handler.postdelayed(r,400)     } } 

the button rotates icon not change implying onclicklistener working runnable isn't.

how make happen?

you declaring runnable in wrong way. lambda expression declare run() function , declare run() function inside.

correct way declare object should be:

private val r: runnable = object: runnable {     override fun run() {         if (isrotate) {             fab2.setimagedrawable(resourcescompat.getdrawable(resources, r.drawable.ic_menu_camera, null))             isrotate = false         } else {             fab2.setimagedrawable(resourcescompat.getdrawable(resources, r.drawable.ic_menu_gallery, null))             isrotate = true         }     } } 

or(lambda expression):

private val r: runnable = runnable {     if (isrotate) {         fab2.setimagedrawable(resourcescompat.getdrawable(resources, r.drawable.ic_menu_camera, null))         isrotate = false     } else {         fab2.setimagedrawable(resourcescompat.getdrawable(resources, r.drawable.ic_menu_gallery, null))         isrotate = true     } } 

Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -