【问题标题】:What is meaning of "view.getWindowToken" in android?android中“view.getWindowToken”的含义是什么?
【发布时间】:2020-10-19 14:18:54
【问题描述】:

我试图在单击按钮时隐藏键盘。

然后我遇到了这段代码:

public static void hideKeyboardFrom(Context context, View view) {
    InputMethodManager imm = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

我的问题是view.getWindowToken() 是什么,它的意义是什么,它返回了什么。

【问题讨论】:

    标签: android


    【解决方案1】:

    所以基本上所有的图形用户界面都是在我们所谓的窗口上呈现的。一个例子是Activity,来自official documentation

    几乎所有活动都与用户交互,因此 Activity 类负责为您创建一个窗口,您可以在其中放置您的 UI 与 setContentView(View)

    另一个例子是AlertDialog

    Android 中的一个屏幕可能有多个窗口。例如,您可以在多窗口 Android 功能中使用两个活动。有时一个窗口可以包含其他窗口。

    这里有一个question,其中有一些关于Window是什么的好答案。

    为了回答您的问题,每个窗口都有一个唯一标识符。此标识符称为窗口令牌。所以,一个“WindowToken”的意义就是唯一标识一个Window。 还有另一种方法,即getApplicationWindowToken(),可以用来获取最顶层Window的标识符。

    【讨论】:

    • 那么window和fragment有什么区别呢?
    • 窗口是在其上绘制视图的表面,而片段是视图(活动的一部分)。
    • 我推荐你通过official guide
    • 好的,那么window和activity有什么区别
    • 阅读this
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    相关资源
    最近更新 更多