我想在activity或fragment之外调用getCurrentFocus(),让结构看起来很漂亮。但是如何调用方法呢?有时我使用上下文作为参数来实现类似的功能。
问问题
15370 次
2 回答
26
您可以通过使用 Activity 来做到这一点,创建一个名为Utils的类并将以下代码放入其中。
public class Utils{
public static void hideKeyboard(@NonNull Activity activity) {
// Check if no view has focus:
View view = activity.getCurrentFocus();
if (view != null) {
InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
}
现在您可以简单地在任何 Activity 中调用此方法来隐藏键盘
Utils.hideKeyboard(Activity MainActivity.this);
于 2015-02-17T10:48:32.970 回答
0
你可以使用这个:
fun Activity.hideKeyboard() {
val view = currentFocus
if (view != null) {
val inputMethodManager =
getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(
view.windowToken,
InputMethodManager.HIDE_NOT_ALWAYS
)
}}
于 2020-06-22T08:04:33.800 回答