android Kotlinonclick回调调用差异

ecfdbz9o  于 2023-05-27  发布在  Android
关注(0)|答案(1)|浏览(101)
tarSign.setOnClickListener {
               
                Navigation.createNavigateOnClickListener(
                    R.id.action_listFragment_to_detailFragment,
                    fragmentBundle
                )
            }
starSign.setOnClickListener(
                Navigation.createNavigateOnClickListener(
                    R.id.action_listFragment_to_detailFragment,
                    fragmentBundle
                )
            )

请告诉我这两个有什么区别
我还以为他们也会这样呢

yuvru6vn

yuvru6vn1#

在第一个示例中,您创建了一个侦听器,它调用Navigation.createNavigateOnClickListener,然后对返回的侦听器不做任何操作。{ }中的代码是每次单击按钮时调用的侦听器代码。因此,当单击该按钮时,它创建了一个未使用的导航侦听器,基本上什么也没完成。
在第二个例子中,首先(立即)调用Navigation.createNavigateOnClickListener,并将创建的侦听器传递给按钮。因此,按钮的单击侦听器就是您创建的导航侦听器。
阅读Kotlintrailing lambda语法。

相关问题