Kotlin综合扩展为视图

我有一些意见的布局,其中一个有id title_whalemare

 import kotlinx.android.synthetic.main.controller_settings.* import kotlinx.android.synthetic.main.view_double_text.* class MainSettingsController : BaseMvpController() { val title: TextView = title_whalemare override fun getLayout(): Int { return R.layout.controller_settings } } 

我试着用kotlin extensionsfind它,但我不能,因为我得到以下错误

由于接收器types不匹配,以下候选者都不适用 由于接收器类型不匹配,以下候选者都不适用

controller_settings.xml

    

我的错误在哪里?

什么错误试图告诉你,你只能从一个Activity或一个Fragment使用扩展来访问视图。 这是因为它完全相同的事情来find与给定的ID的意见,你会手动,它只是调用Activity.findViewById()Fragment.getView().findViewById() ,然后做types转换为View的特定子类。 我猜你的控制器不是一个ActivityFragment

还有另一种使用扩展的方式,如果你能以某种方式将你的布局的根视图传递给你的控制器。 然后你可以做到以下几点:

 val title: TextView = rootView.title_whalemare 

同样,这只是替代View.findViewById()调用和types转换。