2016-05-05 5 views
0

Я разрабатываю приложение, которое нужно запускать строго в портретном режиме на смартфонах и строго в ландшафтном режиме в планшетах. Я использую следующий код, чтобы установить ориентацию вручную в OnCreate метода моего входа деятельности:setRequestedOrientation для ландшафтных нагрузок портрет Макет

if (getResources().getBoolean(R.bool.portrait_only)) { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
     } else { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 
     } 

Если значение BOOL приходит ложь в таблетках. Однако ориентация меняется на ландшафт; все же файл макета выбирается из папки «layout_large» вместо папки «layout_large_land». Поэтому мой взгляд выглядит растянутым.

Я пробовал это link.

Но это не поможет.!

Любая помощь приветствуется.

Спасибо заранее.

ответ

1

Я использовал папку, как это для Tab & мобильного

enter image description here

layout папки для мобильных и layout-sw720dp для вкладок. 720 dp - это ширина, которая говорит, что 720+ dp будет использовать эту папку для макета.

+0

Спасибо за ответ. Кажется, это не работает для меня. –

+0

Можете ли вы рассказать мне, что такое 'setContentView()' и каково имя файла макета в вашей папке макета? Для мобильных и табуляторов –

0

У меня была та же проблема. Убедитесь, что вы НЕ устанавливаете android:configChanges="orientation" для своей деятельности в AndroidManifest.

Я предполагаю, что проблема заключается в том, что setRequestedOrientation потенциально запускает конфигурацию конфигурации ориентации, ОДНАКО с помощью android:configChanges="orientation" это изменение конфигурации не зарегистрировано системой.

В качестве альтернативы, если вы хотите сохранить настройку манифеста, вам придется реализовать свой собственный рекреационный механик для этого конкретного изменения конфигурации.

Это может выглядеть примерно так:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(getResources().getBoolean(R.bool.portrait_only)) 
     recreate(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^