Как исправить проблемы с ориентацией? - PullRequest
2 голосов
/ 14 декабря 2011

Когда я переключил экран из портретного режима в режим ландшафта, то из моего приложения автоматически выходил (также как и пейзаж в портрет) также любой может сказать мне решение для этого ..

это мой код для ориентации,

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
            Toast.makeText(MyAlphabetsActivity.this, "ORIENTATION_PORTRAIT",
                    Toast.LENGTH_SHORT).show();
            setContentView(R.layout.portrait_main);
            System.out.println("int-----1--");
        } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setContentView(R.layout.landscape_main);
            Toast.makeText(MyAlphabetsActivity.this, "ORIENTATION_LANDSCAPE",
                    Toast.LENGTH_SHORT).show();
            System.out.println("int-----2--");
        }

когда изменение портретной ориентации на ландшафтное управление введено в else if () и отображение тостового массажа также .......

Ответы [ 4 ]

1 голос
/ 14 декабря 2011

Если у вас такой же макет в portrait, как и в режиме landscape, то лучше остановить воссоздание Activity при смене ротации, добавив атрибут

android:configChanges="orientation|keyboardHidden"

в вашу активностьтег в файле манифеста.

1 голос
/ 14 декабря 2011

Вы неправильно обрабатываете изменение ориентации.Вам следует прочитать руководство Обработка изменений времени выполнения .Рассмотрим также .

0 голосов
/ 14 декабря 2011
int o = getBaseContext().getResources().getConfiguration().orientation;
    if(o==1)//Portrait
    {
             Log.i("Portrait","=====");

    }
    else if(o==2)//Landscape
    {
             Log.i("Landscape","=====");
    }               
0 голосов
/ 14 декабря 2011

У вас есть два варианта: либо заблокировать приложение в одном режиме: книжный или альбомный.Второй вариант заключается в создании двух макетов: layout-land и layout-Portrait Неправильно иметь два разных макета.Это просто не работает.Вы должны иметь в папках в папке Res.Одна папка layout-land, в которой у вас есть main.xml, и папка layout-Portrait, в которой у вас есть файл с именем main.xml для работы в режиме портрета.

...