2015-11-25 1 views
8

Die Referenzdokumentation für Android Window und verwandte Seiten (z. B. WindowManager.LayoutParams und Window.Callback) bezieht sich auf "Panels" an mehreren Stellen. Zum Beispiel hat die Window.Callback-Seite Folgendes.Was ist ein "Panel" in einem Android-Fenster?

Window.Callback API von einem Fenster zurück zu seinem Aufrufer. Dies ermöglicht es dem Client-Key-Dispatching, Panels und Menüs abzufangen, usw.

und

public abstract Ansicht onCreatePanelView (int FeatureID)

Added in API-Ebene 1

Instanziieren Sie die Ansicht, die in der Anzeige für 'featureId' angezeigt werden soll. Sie können null zurückgeben. In diesem Fall wird der Standardinhalt (normalerweise ein Menü) für Sie erstellt.

Parameter featureId: Welches Panel wird erstellt.

Rückgabe Ansicht: Die oberste Ansicht im Bedienfeld.

WindowManager.LayoutParams scheint Panels als Windows- "Typen", z.B .:

TYPE_APPLICATION_PANEL Fenstertyp anzuzeigen: ein Panel auf der Oberseite einer Anwendung Fenster. TYPE_APPLICATION_SUB_PANEL Fenstertyp: Ein Unterfenster über ein Anwendungsfenster. TYPE_STATUS_BAR_PANEL Fenstertyp: Panel, das über die Statusleiste hinausgleitet. In Multiuser-Systemen wird auf allen Benutzerfenstern angezeigt. TYPE_SYSTEM_DIALOG Fenstertyp: Fenster, das aus der Statusleiste herausgleitet In Multiuser-Systemen wird auf allen Fenstern der Benutzer angezeigt.

Ich habe auch den Quellcode gelesen, konnte aber keine wesentlichen Fortschritte machen, ohne stundenlang zu arbeiten.

Was ist ein Windows-Panel, wie es in der Referenzdokumentation verwendet wird?

Auf eine verwandte Anmerkung, was ist die FeatureId? In onCreatePanelView (int featureId), oben, scheint es eine ID zu sein, um das Panel zu spezifizieren, aber in anderen Kontexten scheint es verwendet zu werden, um eine Reihe von Windows-Features zu identifizieren, zB für Window.requestFeature():

public boolean requestFeature (int FeatureID)

Added in API-Ebene 1

erweiterte Bildschirmfunktionen aktivieren. Dies muss vor setContentView() aufgerufen werden. Kann beliebig oft aufgerufen werden, solange vor setContentView() steht. Wenn sie nicht aufgerufen wird, stehen keine erweiterten Funktionen zur Verfügung. Sie können eine Funktion nicht deaktivieren, wenn sie angefordert wird. Sie können andere Titelfunktionen mit FEATURE_CUSTOM_TITLE verwenden.

Parameter featureId: Die gewünschten Funktionen, definiert als Konstanten von Fenster.

Rückgabe: Die Funktionen, die jetzt festgelegt sind.

Danke, Barry

+2

Warum das -1 ??? Wenn Sie einen guten Grund haben, meine Frage abzustimmen, lassen Sie mich bitte wissen, warum. Danke .... –

+0

Eine anonyme Abstimmung ohne Erklärung und niemand scheint die Antwort zu kennen. Bummel. –

Antwort

6

habe ich ein paar weitere Forschung auf diesem, vor allem durch Android-Quellcode Scharren. Zum größten Teil Panel scheint auch mit Sub-Fenster, wie Unter-Windows sind in WindowManager.LayoutParams definiert. D. h., Fenstertypen zwischen FIRST_SUB_WINDOW und LAST_SUB_WINDOW, einschließlich.

Zum Beispiel von 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); 
    } 
    } 
} 

Wenn jemand weiß, dass dies ungenau sein, oder eine breitere oder andere Definition von Panel-, informieren Sie mich/uns wissen.

Verwandte Themen