Devo aggiungere uno GLSurfaceView
a FrameLayout
in un PopupWindow
. Il problema è che, internamente, lo SurfaceView
richiede il token dalla finestra corrente. PopupWindows
non hanno i propri token, quindi gli ho dato il token dal genitore a comparsa, invece, in questo modo:GLSurfaceView in a PopupWindow
class MySurfaceView extends GLSurfaceView {
...
@Override
public IBinder getWindowToken() {
// I set the mPopupParent manually to be the parent of the PopupWindow in question
return mPopupParent.getWindowToken();
}
}
...
}
Ora, anche se MySurfaceView
viene aggiunto a una FrameLayout
che è il contenuto del PopupWindow
, si non attira lì. Si basa sul punto di vista di cui ho ricevuto il token.
Come posso ottenere che disegni sul layout a cui è effettivamente aggiunto?
MODIFICA: Solo per fornire ulteriori dettagli, nel caso in cui faccia la differenza, mPopupParent è una vista IME (una tastiera, in sostanza).
Devi stare bastone per il 'PopupWindow'? Penso che dovresti usare un semplice 'Activity' con il tema' Dialog'. –
Sto lavorando su un IME, non ci sono attività con cui lavorare, sfortunatamente. –
Hai provato ad aggiungere SurfaceView direttamente a 'WindowManager' tramite' addView'? – Delyan