获取Android中所有Windows的列表

gil*_*ilm 10 android

是否有可能在我的Android应用程序中获取所有Windows的列表

如果没有,是否可以在创建新视图窗口时收到通知

干杯:)

例如:我想知道屏幕上是否有可见的键盘视图,或者屏幕上是否有警告对话框.那可能吗?我可以获取视图或窗口实例吗?

Hum*_*ist 1

是的,这可以通过多种不同的方式实现。屏幕上显示的所有视图都添加到 ViewGroup 中,这些视图通常是 R.layout.main、LinearLayout、RelativeLayout 等布局。

在构建布局后,您可以使用 onWindowFocusChanged 等处理程序在运行时访问视图:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    int count = myLayout.getChildCount();
    for(int i = 0; i < count; i++)
    {
    View v = myLayout.getChildAt(i);
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以简单地在 onWindowFocusChanged 内设置一个线程,该线程会通过不断检查当前布局的子视图数量来通知您是否创建了键盘。

  • 但如果我没记错的话,所有键盘视图、对话框和警报对话框都是在不同窗口上呈现的视图。我可以枚举 Windows 吗?或其他 Windows 中的视图? (2认同)