2015-11-08 1 views
0

Добрый день, я делаю приложение для Android, и у меня есть активность, когда пользователь нажимает кнопку, поворот меняется от портрета к пейзажу, и я устанавливаю видимость отображения RelativeLayout на видимое.Android - Вращающийся экран программно не позволяет установить видимость компоновки после?

Вот мой код:

public void graphEnlarge(View view){ 

    RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.main); 
    mainLayout.setVisibility(View.VISIBLE); 

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
} 

Если удалить setRequestedOrientation, мой RelativeLayout показывает без проблем. Поскольку я хочу показать макет в ландшафте, я должен поставить этот код. Однако, когда я помещаю этот запрос в альбом, я не могу показать свой макет с помощью setVisibility.

Я также попытался установить setVisibility после того, как установил ориентацию, но она не работает, и мой relativeLayout не отображается.

Неужели кто-нибудь сталкивался с этой ситуацией раньше? Любая помощь очень ценится.

+0

Я думаю, что проблема заключается в изменении ориентации активности, которую она воссоздает, и макет переходит в начальное видимое состояние. – TdSoft

+0

добавив это в вашу активность в манифесте android: configChanges = "orientation | keyboardHidden | screenSize" решит проблему. – TdSoft

+0

Йо, сделай свой второй комментарий. Это устранило мою проблему. – Razgriz

ответ

1

Я думаю, проблема в том, что вы меняете ориентацию активности, которую она воссоздает, и макет переходит в начальное видимое состояние. Поэтому добавление этого в вашу активность в манифесте android:configChanges="orientation|keyboardHidden|screenSize" решит проблему.

+0

На самом деле, если вы прочитали мой вопрос, я заявил там, что попытался изменить видимое состояние/после/я переключил ориентацию. :-) – Razgriz

Смежные вопросы