Kotlin Android扩展和菜单

Kotlin Android扩展和菜单,kotlin,kotlin-android-extensions,Kotlin,Kotlin Android Extensions,是否有任何方法可以使用合成属性而不是使用findItem方法访问菜单项\u搜索片段照片库中定义的菜单项版面 override fun onCreateOptionsMenu(menu: Menu, menuInflater: MenuInflater) { super.onCreateOptionsMenu(menu, menuInflater) menuInflater.inflate(R.menu.fragment_photo_gallery, menu) //is

是否有任何方法可以使用合成属性而不是使用findItem方法访问菜单项\u搜索片段照片库中定义的菜单项版面

override fun onCreateOptionsMenu(menu: Menu, menuInflater: MenuInflater) {
    super.onCreateOptionsMenu(menu, menuInflater)
    menuInflater.inflate(R.menu.fragment_photo_gallery, menu)

    //is there a way to access searchItem using synthetic properties?
    val searchItem = menu.findItem(R.id.menu_item_search)
}

MenuInflater
的用途与
LayoutInflater
完全不同

尽管两者的名称中都有“充气器”部分,并且实现的方法都被命名为“充气()”,但它们做的事情完全不同<代码>菜单充气器充气
菜单
s,其中
布局充气器
充气
视图
s

是为了简化Android视图的使用而创建的,而不是Android菜单或任何具有
inflate()
方法的东西


长话短说-不可能将KAE与Android菜单一起使用。

您看过吗?我目前没有在Android上使用Kotlin,但据我所知,您只需添加一个导入,如
import kotlinx.Android.synthetic.main..*
,然后您就可以在活动代码中使用名为
menu item\u search
的合成属性。是的,我确实有。您的“解决方案”仅适用于onCreate方法中的布局(您可以通过名称访问每个布局项)。菜单布局在OnCreateOptions菜单中膨胀,我无法使用其名称(合成变量)访问菜单项搜索。这是一个很好的解释