Журналы, методы не работает, когда экран вращается пейзаж

Я создаю приложение, которое требует ландшафтного / портретного экрана. Моя проблема в том , когда экран вращается , метод не работает даже лесопогрузчик, поэтому у меня возникли проблемы со съемкой. Кто-нибудь, у кого есть опыт же? То, что я получил в журналах после вращения

12-28 00:02:55.897 13039-13039/com.xxx.xxx D/ViewRootImpl: ViewPostImeInputStage processPointer 0
12-28 00:02:55.927 13039-13039/com.xxx.xxx D/ViewRootImpl: ViewPostImeInputStage processPointer 1

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

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setContentView(R.layout.activity_task_page_lan);
            initCreate();
            //im calling this because some controls are newly added
            bindNewControlsLoaded();
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            setContentView(R.layout.activity_task_page);
            initCreate();
        }

    }

initCreate method — это метод портрета, который используется для загрузки общих элементов управления. в то время как дополнительные элементы управления вызываются в bindNewControlsLoaded();

В моем манифесте android:configChanges="orientation|screenSize"

1 ответ

  1. По умолчанию android воссоздать активность на поворот, так что вы можете сделать это без onConfigurationChangedвообще просто использовать квалификаторы ресурсов . В вашем случае просто переместитесь activity_task_page_lan.xmlв res/ layout-land / folder и переименуйте в activity_task_page.xml.

    Но если вы действительно хотите справиться с этим случаем с вашим кодом и предотвратить восстановление активности, вы должны добавить android:configChanges="orientation"в объявление активности.