diff --git a/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceActionView.java b/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceActionView.java index c13e6cb0..af361a89 100644 --- a/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceActionView.java +++ b/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceActionView.java @@ -4,7 +4,6 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.SearchView; import android.util.AttributeSet; -import android.view.View; import androidx.fragment.app.FragmentManager; public class SearchPreferenceActionView extends SearchView { diff --git a/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceFragment.java b/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceFragment.java index 1f05ed53..30a950e2 100644 --- a/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceFragment.java +++ b/lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceFragment.java @@ -10,6 +10,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageView; @@ -95,6 +96,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa viewHolder.recyclerView.setAdapter(adapter); viewHolder.searchView.addTextChangedListener(textWatcher); + viewHolder.searchView.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_DONE) { + hideKeyboard(); + return true; + } + return false; + }); if (!searchConfiguration.isSearchBarEnabled()) { viewHolder.cardView.setVisibility(View.GONE); @@ -202,6 +210,7 @@ private void hideKeyboard() { InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); if (view != null && imm != null) { imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + view.clearFocus(); } }