XML-файлы layout-land не работают с обратным вызовом onConfigurationChanged - PullRequest
3 голосов
/ 17 марта 2011

У меня есть разные макеты для портретного и ландшафтного режима, и мне также нужно переопределить обратный вызов onConfigurationChanged(). Но проблема в том, что когда я меняю ориентацию телефона на альбомную, альбомная компоновка не работает.

Может кто-нибудь сказать мне, это onConfigurationChanged проблема обратного вызова или что-то еще, вызывающее это?

Любая помощь будет благодарна.

Ответы [ 2 ]

10 голосов
/ 17 марта 2011

мне также нужно переопределить обратный вызов onConfigurationChanged ()

Почему?

, но проблема заключается в том, что я изменяю ориентацию телефона, чтобы переместить мой ландшафтный макетне работает.

Я собираюсь догадаться, что "не работает" означает, что ландшафтный макет не вступает в силу.Это ожидаемое поведение с учетом того, что вы сделали.

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

2 голосов
/ 23 ноября 2012

Я уверен, что это поможет вам окончательно ...

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int ot = getResources().getConfiguration().orientation;
    switch (ot) {
    case Configuration.ORIENTATION_LANDSCAPE:
        setContentView(R.layout.main_land);
        break;
    case Configuration.ORIENTATION_PORTRAIT:
        setContentView(R.layout.main);
        break;
    }
    Toast.makeText(this, "Helloo", Toast.LENGTH_SHORT).show();
}
enter code here
@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);

    int ot = getResources().getConfiguration().orientation;
    switch (ot) {
    case Configuration.ORIENTATION_LANDSCAPE:
        setContentView(R.layout.main_land);
        break;
    case Configuration.ORIENTATION_PORTRAIT:
        setContentView(R.layout.main);
        break;
    }
}

@Override
public Object onRetainNonConfigurationInstance() {
    // TODO Auto-generated method stub
    return super.onRetainNonConfigurationInstance();
}

}

и добавьте эту строку в файл манифеста .. андроид: configChanges = "keyboardHidden | ориентация"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...