Muszę dodać GLSurfaceView
do FrameLayout
w PopupWindow
. Problem polega na tym, że wewnętrznie SurfaceView
żąda tokena z bieżącego okna. PopupWindows
nie mają własne znaki, więc daję mu żeton z podręcznego rodzica zamiast, tak jak poniżej:GLSurfaceView w 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();
}
}
...
}
Teraz, mimo MySurfaceView
dodano do FrameLayout
czyli zawartość PopupWindow
, to nie rysuje tam. Opiera się na widoku, z którego otrzymałem token.
W jaki sposób mogę go pobrać na podstawie układu, do którego został dodany?
EDYTOWANIE: EDIT: Aby podać więcej szczegółów, w przypadku, gdy robi różnicę, mPopupParent jest widokiem IME (klawiatura zasadniczo).
Musisz trzymać się 'PopupWindow'? Myślę, że powinieneś zamiast tego użyć zwykłego 'Activity' z motywem' Dialog'. –
Pracuję nad edytorem IME, niestety nie działa żadna czynność. –
Czy próbowałeś dodać SurfaceView bezpośrednio do 'WindowManager' przez' addView'? – Delyan