搜索界面键盘回车功能 #133

This commit is contained in:
HapeLee committed 2025-10-24 12:50:23 +08:00
1 parent a73e3db0fc
commit 27a395e697
1 file changed
+26 -11
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.KeyEvent
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.View.VISIBLE import android.view.View.VISIBLE
@@ -206,19 +207,21 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
searchView.editText.hint = getString(R.string.search_book_key) searchView.editText.hint = getString(R.string.search_book_key)
searchView.editText.setOnEditorActionListener { _, actionId, _ -> searchView.editText.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH) { if (actionId == EditorInfo.IME_ACTION_SEARCH) {
val key = searchView.text.toString().trim() doSearch()
if (key.isNotEmpty()) { true
isManualStopSearch = false } else {
viewModel.saveSearchKey(key)
viewModel.searchKey = ""
viewModel.search(key)
visibleInputHelp()
searchView.hide()
return@setOnEditorActionListener true
}
}
false false
} }
}
searchView.editText.setOnKeyListener { _, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN) {
doSearch()
true
} else {
false
}
}
searchView.editText.doAfterTextChanged { searchView.editText.doAfterTextChanged {
viewModel.stop() viewModel.stop()
@@ -241,6 +244,18 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
visibleInputHelp() visibleInputHelp()
} }
private fun doSearch() {
val key = searchView.text.toString().trim()
if (key.isNotEmpty()) {
isManualStopSearch = false
viewModel.saveSearchKey(key)
viewModel.searchKey = ""
viewModel.search(key)
visibleInputHelp()
searchView.hide()
}
}
private fun updateSelectedGroup() { private fun updateSelectedGroup() {
val chip = binding.chipGroup val chip = binding.chipGroup
val displayNames = viewModel.searchScope.displayNames val displayNames = viewModel.searchScope.displayNames