Подтвердить что ты не робот

Ориентация экрана на пейзаж не работает

Я часами ломал голову над этой проблемой. Я создал файл main.xml и создал его для формата res/layout-land (landscape), а другой - для портрета в res/layout.

Когда я поворачиваю эмулятор (ctrl-F11), мое приложение правильно поворачивается к пейзажу с использованием правильного main.xml, но последующее вращение назад к портрету просто сохраняет пейзаж mail.xml.

Это было сделано в 2.0 AVD.

Из-за отчаяния я загрузил новый образец кода для нескольких резолюций и должен был создать новый 2.1 AVD, к моему удивлению, поворот с этим приложением работает правильно, как и ожидалось. Поэтому я решил попробовать свое приложение на 2.1 AVD, и он отлично работает.

Итак, это ошибка в 2.0 AVD или есть что-то особенное, что я должен делать для < 2.1 версии SDK?

Это сводит меня с ума, потому что нет, где кто-нибудь упомянул об этой проблеме.

Заранее спасибо

4b9b3361

Ответ 1

FWIW, он официально сообщил об ошибке здесь.

Ответ 2

Установил новую среду разработки Android и создал новый 2.3.3 AVD. (Обе руки и x86). Обе проблемы одинаковы, даже с системными приложениями. Таким образом, это не ошибка вашего кода, так как системные приложения имеют одинаковую проблему.

Нажатие "home" и перезапуск приложения работают, чтобы вернуть его на портрет.

Ответ 3

Если вы не укажете

<activity android:name="MainActivity" android:configChanges="orientation">

В вашем манифесте я думаю, что ваше приложение должно автоматически выбрать правильный layout.xml. Таким образом, мне кажется, что ошибка в эмуляторе. Во всяком случае, я обнаружил, что эмулятор неисправен другими способами. Ex. он дважды запускает код при изменении ориентации.

Ответ 4

Я использую Eclipse для Java Helios, а Android 2.2 и я столкнулись с этой проблемой на своем ноутбуке. Я выяснил, в чем проблема, по крайней мере, для меня. Иногда я работаю на своем ноутбуке в области, где нет Wi-Fi, поэтому я не подключен к Интернету, и это, похоже, вызывает эту проблему. Я протестировал его, перейдя в точку доступа Wi-Fi и, конечно же, переключение между портретом и пейзажем и обратно работает отлично. Возможно, эмулятор просто должен иметь соединение, чтобы сделать это, или это ошибка в эмуляторе.

Ответ 5

Да, эмулятор немного глючит, когда дело касается изменений ориентации. Я не испытывал этой конкретной проблемы, но иногда это странно. Однако это определенно не проблема с < 2.1 SDK на физическом телефоне, по крайней мере, потому что я все еще застрял с v1.5 на своем Hero, и он правильно обрабатывает изменения ориентации, выбирая правильную папку макета, чтобы получить файлы xml.

Ответ 6

Я только сделал 2.1 разработку, но еще одна мысль, которую я только что имел, - попробовать CTRL-F12 (переключиться на NEXT-ориентацию макета) вместо CTRL-F11 (переключиться на ПРЕДЫДУЩУЮ ориентацию макета() и посмотреть, что-нибудь изменится. Это от Управление эмулятором.

Кроме того, существует ряд методов жизненного цикла, которые вы могли бы переопределить для наблюдения за тем, что происходит за кулисами. Это может дать вам знать, есть ли ошибка в эмуляторе.

Ответ 7

У меня также была такая же проблема. Я решил это. Я не думаю, что это ошибка эмулятора. Я думаю, что в некоторых реальных телефонах он будет вести себя так. Основная причина в том, что деятельность не освежает. Вы можете сделать одно: переопределить

public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    startActivity(getIntent());
    finish();

}

и перезагрузить текущую активность. Это поможет вам.