Android макет Земли не работает

Я смотрел на проблемы в 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, scrollbar ...) не работает должным образом.

вы можете мне помочь, пожалуйста?

4 ответов


удалить "ориентацию" из android:configChanges в файле манифеста. и поместите XML-файл ландшафтного макета в папку layout-land.


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

AndroidManifest.xml-файл:

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

и в действии реализуем метод onConfigurationChanged (конфигурация 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 () программно выполните макеты.


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


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

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

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