Я использую все возможные макеты для своего приложения портрет и пейзаж (small-normal-large-xlarge), но после тестирования на маленьком экране мне просто не понравилось, как похоже, что я пытаюсь сделать, это отключить пейзаж для небольших макетов. Есть ли способ сделать это? Все, что я обнаружил, это изменения в манифесте, но я считаю, что, перенастроив манифест, я применил изменения ко всем макетам.Как отключить ландшафт на макете макетов
4
A
ответ
8
Самым простым способом поместить это в onCreate()
методы все вашу деятельности (еще лучше, поставить его в BaseActivity класс и расширить все ваши действия от него)
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
if (isLargeDevice(getBaseContext())) {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
} else {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
Вы можете использовать этот метод, чтобы обнаружить, если устройство представляет собой телефон или планшет:
private boolean isLargeDevice(Context context) {
int screenLayout = context.getResources().getConfiguration().screenLayout;
screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK;
switch (screenLayout) {
case Configuration.SCREENLAYOUT_SIZE_SMALL:
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
return false;
case Configuration.SCREENLAYOUT_SIZE_LARGE:
case Configuration.SCREENLAYOUT_SIZE_XLARGE:
return true;
default:
return false;
}
}
0
Проверить эту ссылку, вы можете проверить тип устройства и установить ориентацию при необходимости
Android: allow portrait and landscape for tablets, but force portrait on phone?
0
Вы можете программно handle runtime configuration changes как то
в манифесте:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
в вашей деятельности
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
///check the screen size and change it to potrait
}
}
или проверить this answer, чтобы увидеть, как проверить размер экрана и изменения его
-1
, например, 480 устройств для определения размера экрана: Применить в методе oncreate:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
if(width==480){
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Смежные вопросы
- 1. Отображение трех макетов в макете подписки
- 2. Создание двух макетов в родительском макете
- 3. Отключить EditText в макете?
- 4. Можно ли включить/отключить ландшафт на том же ViewController?
- 5. Как сфокусироваться на самом макете?
- 6. Как получить пейзаж, когда я сменил портрет на ландшафт?
- 7. Реализация макетов на многоуровневом сайте
- 8. Как отключить все кнопки в макете?
- 9. Установить несколько видов/макетов в родительском макете одинаково
- 10. Ландшафт обновления lag unity C# - Как эффективно обновить ландшафт?
- 11. Как изменить ориентацию UIViewController на ландшафт программно?
- 12. Дисплей отсутствует, когда макет изменен на ландшафт
- 13. Android Ориентация на ландшафт IDE
- 14. Отключить привязку данных для некоторых макетов
- 15. Как изменить фон макетов
- 16. Android, как разместить макет поверх двух макетов
- 17. редактор eclipse android xml, вставляющий id на несколько макетов
- 18. Как создать большой ландшафт/пейзаж
- 19. Как установить onClickListener на включенном макете?
- 20. Как создать ландшафт в three.js?
- 21. отключить все элементы в макете - Android
- 22. настройка макетов visiblity на событие нажатия кнопки
- 23. Отключить соответствующую кнопку в макете по умолчанию
- 24. Xmodmap и несколько макетов
- 25. коробка2d. платформер. разрушаемый ландшафт
- 26. Потерянные жесты iPad-ландшафт
- 27. asp.net mvc: несколько макетов
- 28. Выполнение прокручиваемого вида при изменении на ландшафт
- 29. Используйте wkhtmltopdf для установки ориентации на ландшафт
- 30. Цель-c: только ориентация на ландшафт
брат дает ширину экрана, тогда я дам вам решение –