Я развиваю игру для зажигательного огня, игра всегда запускается со скрытым баром.
Только когда пользователь входит в меню пауз, панель должна появиться, я хочу, чтобы панель отображалась поверх игры.
Но кажется, что при появлении панели GlSurfaceView.getHeight() изменяется от 600 до 580, и моя игра меняет размер, но я не хочу этого поведения,
Я просто хочу, чтобы панель отображалась над игрой, и моя игра не двигается, я уже пробовал с помощью GlSurfaceView.setMinimumHeight(600);
но разжигание просто игнорирует это.
так я всегда играю:
и когда я активирую панель, это происходит:
вместо этого:
вы знаете способ избежать этого?
Благодарю!
Чтобы создать GlSurfaceView, я делаю следующее:
OnCreate() {
s_activity.m_view = new GameGLSurfaceView(s_activity.getApplication(), true, pixelSize,depthSize, stencilSize);
}
public GameGLSurfaceView(Context context, boolean translucent,int pixelSize, int depth, int stencil)
{
super(context);
mRenderer = new GameRenderer(context, this);
setRenderer(mRenderer);
}
Чтобы скрыть и показать панель, я использую эту функцию
private static final int AMAZON_FLAG_NOSOFTKEYS = 0x80000000;
private static final int FLAG_SUPER_FULLSCREEN = AMAZON_FLAG_NOSOFTKEYS | WindowManager.LayoutParams.FLAG_FULLSCREEN;
public static void toggleKindleBar(final int toDo)
{
if( s_activity != null)
s_activity.runOnUiThread(new Runnable()
{
public void run()
{
s_activity.getWindow().clearFlags( toDo!=1? WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN : FLAG_SUPER_FULLSCREEN);
s_activity.getWindow().addFlags( toDo!=1? FLAG_SUPER_FULLSCREEN:WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
});
}
возможные решения:
попробуйте это в методе onCreate():
getWindow(). setFlags (WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
обратите внимание, что, по моему опыту, у Kindle Fire есть некоторые странные проблемы с некоторыми представлениями, когда они используются во время выполнения этого кода, поэтому, даже если он работает, проведите некоторое расширенное тестирование.
попробуйте установить манифест, чтобы иметь несколько флагов для configChanges, но я не тестировал его, и у меня больше нет огня.