Платформа Android Layout не работает

Я рассматривал проблемы в stackoverflow, и я пробовал все, что видел, но макет-земля не работает. В моем коде у меня есть метод onConfigurationChanged

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

И файл манифеста:

<activity
        android:name="com.sde.PlayerTrack"
        android:theme="@style/AppTheme"
        android:configChanges="orientation|keyboardHidden|screenSize"
        >
    </activity>

Я также попытался удалить в записи манифеста android: configChanges, а затем загрузочную накладку макета, но компоненты, которые у меня есть (TextView, полоса прокрутки...) работают неправильно.

Можете ли вы мне помочь?

Ответ 1

Наконец, мое решение:

Файл AndroidManifest.xml:

<activity
        android:name="activity.name"
        android:configChanges="orientation|keyboardHidden|screenSize"       
        >

И в реализации реализует метод onConfigurationChanged (Configuration newconfig):

@Override
 public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);     
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            createHorizontalalLayout();            
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            createVerticalLayout();             
        }
}

С createVerticalLayout() и createHorizontalLayout() программно делают макеты.

Ответ 2

Удалите orientation из android:configChanges в файле манифеста и поместите XML- файл альбомной компоновки в папку layout-land.

Ответ 3

Проверьте эмулятор, если вы используете Android-эмулятор 4.4, у него есть какая-то ошибка в его ориентации. У меня была та же проблема, что и мой эмулятор сменил 4.0.3, и все сработало нормально. Посетите здесь для более подробной информации сайт

Ответ 4

У меня была эта проблема, и после того, как большая отладка обнаружила виновника в файле build.gradle. Студия Android добавила строку

sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/layout-land'] } }

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