提问人:Ali 提问时间:10/7/2022 最后编辑:Ali 更新时间:10/9/2022 访问量:170
将选项捆绑包传递到 startActivity,在目标 Activity 中引入意外结果
Pass options bundle to startActivity introduce an unexpected result in destination Activity
问:
这个问题的简单示例可以在这里找到:https://github.com/alirezaeiii/SearchViewOption
我在 MainActivity 中有以下代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {
val options = ActivityOptions.makeSceneTransitionAnimation(
this,
button,"animation"
).toBundle()
val intent = Intent(this, SearchActivity::class.java)
startActivity(intent, options)
}
}
}
如您所见,我使用选项作为捆绑包启动Activty。在 SearchActivity 中,我有以下代码:
class SearchActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_search)
val button = findViewById<Button>(R.id.button)
val search = findViewById<SearchView>(R.id.search)
search.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean {
return true
}
override fun onQueryTextChange(query: String): Boolean {
if (query.isNotEmpty()) {
button.visibility = View.GONE
} else {
button.visibility = View.VISIBLE
}
return true
}
})
}
}
如您所见,当有查询时,我隐藏了按钮。首次输入查询时,请关闭屏幕并将其打开(SearchActivity 已恢复),按钮将再次出现。如果再次搜索并关闭屏幕并打开它(SearchActivity 恢复),则按钮将按预期消失。
这个问题与我在 startActivity 中传递的选项包有关。如果我没有通过它并且一切都按预期工作。startActivity(intent)
为什么期权包会引入这个问题?我该如何避免它?
附录我在这里报告了这个问题:https://issuetracker.google.com/issues/251812970
答: 暂无答案
评论