[英]How to clear focus from edittext when the keyboard closes after click back button?
I have an AppBarLayout
and I hide when I touch EditText
. 我有一个AppBarLayout
,当我触摸EditText
时隐藏了。
SearchFragment.class SearchFragment.class
binding.searchEt.setOnFocusChangeListener { view, hasFocus ->
if (hasFocus) {
binding.appBarLayout.setExpanded(false, true)
} else {
binding.appBarLayout.setExpanded(true, true)
}
}
But I can't show again AppBarLayout
when keyboard closes. 但是当键盘关闭时,我无法再显示AppBarLayout
。 Because when keyboard closes EditText
focus does not change. 因为当键盘关闭时EditText
焦点不会改变。
Xml Xml
<EditText
android:id="@+id/searchEt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="8dp"
android:layout_toStartOf="@+id/close_button"
android:layout_toEndOf="@+id/ic_search"
android:background="@android:color/transparent"
android:focusable="true"
android:focusableInTouchMode="true"
android:fontFamily="@font/catamaran_bold"
android:hint="@string/search_hint"
android:imeOptions="actionSearch"
android:includeFontPadding="true"
android:orientation="vertical"
android:paddingStart="12dp"
android:singleLine="true"
android:textAlignment="viewStart"
android:textColor="#000"
android:textDirection="locale"
android:textSize="18dp"
tools:text="alskjfdn" />
How can I clear focus when keyboard hide? 隐藏键盘时如何清除焦点? Cursor still showing after keyboard hidden. 隐藏键盘后,光标仍显示。
use something like this: 使用这样的东西:
public void hideKeyboard(Activity activity){
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
if(view != null){
view.clearFocus();
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
inside the keyboard close listener, after close keyboard clear focus from editText 在键盘内部关闭监听器后,在键盘关闭后从editText清除焦点
editText.setFocusable(false);
editText.setFocusableInTouchMode(true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.