Я занимаюсь методом проб и ошибок уже несколько часов, и я еще не нашел решение для чего-то, что кажется простым ...
Я использую
public void onConfigurationChanged(Configuration newConfig)
метод определения, изменил ли пользователь ориентацию своего экрана.
В конце концов, он отправляется этому методу, где сущности прикрепляются к сцене:
public void BuildScene(final Scene scene){
// Destroys current scene.
scene.detachChildren();
this.SpriteDayPortrait = new Sprite(-200, 0, 2000, 500, this.mParallaxLayerDayPortrait);
this.SpriteDayLandscape = new Sprite(0, 0, 750, 500, this.mParallaxLayerDayLandscape);
if (prefs.getString("frontImage", "1").equals("3"))
{
//Day
if (orientationValue.equals("PORTRAIT"))
{
Log.d("Orientation", "Portrait");
scene.detachChild(SpriteDayLandscape);
scene.attachChild(SpriteDayPortrait);
}
else if (orientationValue.equals("LANDSCAPE"))
{
Log.d("Orientation", "Landscape");
scene.detachChild(SpriteDayPortrait);
scene.attachChild(SpriteDayLandscape);
}
}
}
Этот метод вызывается при первом создании обоев, а также при изменении ориентации экрана пользователем.
Я проверил это на своем телефоне, и он успешно отображает сообщения журнала, когда я меняю ориентацию, что означает, что он делает это так, как я хочу.
Проблема -
дочерний элемент спрайта не отключается при вызове этого метода. Если я нахожусь в портретном режиме и переключаюсь в альбомный, портретный спрайт остается, и я хотел бы, чтобы он исчез, и наоборот.
Я был бы очень рад, если бы кто-нибудь мог ответить на это, у меня болит голова, вероятно, в течение 20 часов.