¿Qué es un "panel" en una ventana de Android?

La documentación de referencia para la ventana de Android y páginas relacionadas (por ejemplo, WindowManager.LayoutParams y Window.Callback) hace referencia a "Paneles" en varios lugares. Por ejemplo, la página Window.Callback tiene lo siguiente.

Window.Callback API de una ventana de nuevo a su llamador. Esto permite al cliente interceptar el envío de claves, paneles y menús, etc.

y

Public abstract Ver onCreatePanelView (int featureId)

Añadido en API nivel 1

Instancia la vista para mostrar en el panel para 'featureId'. Puede devolver null, en cuyo caso el contenido predeterminado (normalmente un menú) se creará para usted.

Parámetros featureId: qué panel se está creando.

Vista de devoluciones: La vista de nivel superior para colocar en el panel.

WindowManager.LayoutParams parece ver paneles como Windows "tipos", por ejemplo:

TYPE_APPLICATION_PANEL Tipo de ventana: un panel en la parte superior de una ventana de la aplicación. TYPE_APPLICATION_SUB_PANEL Tipo de ventana: un sub-panel en la parte superior de una ventana de la aplicación. TYPE_STATUS_BAR_PANEL Tipo de ventana: panel que se desliza sobre la barra de estado En sistemas multiusuario se muestra en las ventanas de todos los usuarios. TYPE_SYSTEM_DIALOG Tipo de ventana: panel que se desliza desde la barra de estado En sistemas multiusuario se muestra en todas las ventanas de los usuarios.

También revisé el código fuente, pero no pude hacer ningún progreso significativo sin pasar horas en el proceso.

¿Qué es un Panel de Windows, tal como se utiliza en la documentación de referencia?

En una nota relacionada, ¿cuál es el featureId? En onCreatePanelView (int featureId) , arriba, parece ser un ID utilizado para especificar el panel, pero en otros contextos parece que se utiliza para identificar un conjunto de características de Windows, por ejemplo, para Window.requestFeature ():

Public boolean requestFeature (int featureId)

Añadido en API nivel 1

Habilitar funciones de pantalla extendida. Esto debe llamarse antes de setContentView (). Se puede llamar tantas veces como se desee, siempre y cuando sea antes de setContentView (). Si no se llama, no habrá funciones extendidas. No se puede desactivar una función una vez que se solicita. No puede utilizar otras funciones de título con FEATURE_CUSTOM_TITLE.

Parámetros featureId: Las características deseadas, definidas como constantes por Window.

Devuelve: las características que se establecen ahora.

Gracias, Barry

Hice un montón de investigación adicional sobre esto, en su mayoría pawing a través del código fuente de Android. En su mayor parte, Panel parece ser sinónimo de Sub-Window , ya que las sub-ventanas están definidas en WindowManager.LayoutParams . Es decir, tipos de ventanas entre FIRST_SUB_WINDOW y LAST_SUB_WINDOW , inclusive.

Por ejemplo, desde WindowManagerGlobal.addView() :

 // If this is a panel window, then find the window it is being // attached to for future reference. if (wparams.type >= WindowManager.LayoutParams.FIRST_SUB_WINDOW && wparams.type <= WindowManager.LayoutParams.LAST_SUB_WINDOW) { final int count = mViews.size(); for (int i = 0; i < count; i++) { if (mRoots.get(i).mWindow.asBinder() == wparams.token) { panelParentView = mViews.get(i); } } } 

Si alguien sabe que esto es inexacto, o tiene una definición más amplia o diferente de Panel , por favor hágamelo saber.

  • ¿Por qué algunas veces la aplicación se reinicia en killProcess?
  • El bloqueo del teclado se muestra brevemente antes de que se inicie Actividad al utilizar FLAG_SHOW_WHEN_LOCKED
  • ¿Cómo sortea Facebook Messenger un chathead? (Androide)
  • "Window Manager Crash" al enviar la tecla 'Abajo' en el Samsung Galaxy S
  • WindowManager de Android Window no reposiciona después de que el teclado es visble
  • Superponer una capa Transparente de pantalla completa en Android 4.4 (KitKat)
  • La vista web de Android ajusta todo el contenido a la pantalla
  • Superposición de la barra de navegación de Android
  • Android Salir del modo de pantalla completa
  • FLAG_TURN_SCREEN_ON no funciona
  • ¿Qué significa este código java de 4 líneas en la aplicación android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.