我正在尝试在Jetpack编写UI中转换以下代码,
searchResultsView = findViewById<SearchResultsView>.(R.id.search_results_view).apply {
initialize(
SearchResultsView.Configuration(CommonSearchViewConfiguration(DistanceUnitType.IMPERIAL))
)
isVisible = false
}
searchEngineUiAdapter = SearchEngineUiAdapter(
view = searchResultsView,
searchEngine = searchEngine,
offlineSearchEngine = offlineSearchEngine,
)
我需要在我们的函数SearchEngineUiAdapter中传递searchResultView,
我卡在这里,因为searchView现在是AndroidView,它作为一个合成组件,所以我们不能传递到一个函数。我不知道注入这个searchResultsView到一个函数
下面是最终代码
AndroidView(
factory = { context ->
SearchResultsView(context).apply {
initialize(
SearchResultsView.Configuration(
CommonSearchViewConfiguration(
DistanceUnitType.IMPERIAL
)
)
)
}
},
modifier = Modifier
.fillMaxWidth()
.background(color = Color.Blue)
1条答案
按热度按时间dpiehjr41#
在Jetpack Compose中,您将数据提供给可组合函数进行显示,而不是相反。您应该初始化并在外部的viewModel中获取搜索结果,然后将用于显示的数据传递给搜索结果组合函数。