【发布时间】:2019-08-23 15:00:30
【问题描述】:
我有一个 SearchFragment 这是我在 SearchFragment 中的 onCreateOptionMenu 代码
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.search_menu, menu)
val searchItem = menu.findItem(R.id.action_search)
val searchManager = activity?.getSystemService(Context.SEARCH_SERVICE) as? SearchManager
searchView = searchItem?.actionView as? SearchView
searchView?.setSearchableInfo(searchManager?.getSearchableInfo(activity?.componentName))
queryTextListener = object : SearchView.OnQueryTextListener {
override fun onQueryTextChange(newText: String): Boolean {
return true
}
override fun onQueryTextSubmit(query: String): Boolean {
viewModel.loadSearchResults(query)
return true
}
}
searchView?.setOnQueryTextListener(queryTextListener)
super.onCreateOptionsMenu(menu, inflater)
}
我想知道是否可以对菜单的 SearchView 进行数据绑定,所以如果我不想在 Fragment 中有 SearchView.OnQueryTextListener,我可以将 viewModel 与菜单连接起来,并在 ViewModel 中监听 searchView 的变化
android:text="@={viewModel.query}"
【问题讨论】:
标签: android android-databinding android-optionsmenu