7

我想在activity或fragment之外调用getCurrentFocus(),让结构看起来很漂亮。但是如何调用方法呢?有时我使用上下文作为参数来实现类似的功能。

4

2 回答 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 回答