Почему тег viewport на Galaxy Nexus/Android 4 не работает?

Я работаю над webApp, который должен быть изменен до любого размера экрана, которое может иметь устройство. В iOS и более старых версиях Android тег viewport отлично работает. Изображение на экране всегда изменяется в соответствии с экраном.
(Как описано здесь: https://developer.apple.com/library/ios/#DOCUMENTATION/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html#//apple_ref/doc/uid/TP40006509-SW19)
На Galaxy Nexus (Android 4.0) это не сработает. С левой и правой стороны - около 20 пикселей пространства, и я не знаю, почему он это делает. Мой тег viewport выглядит следующим образом:

<meta name="viewport" content="width=device-width, initial-scale=1.0"/>

Независимо от того, что я меняю по тегу, пространство всегда есть, и содержимое не подходит для экрана. Я сделал образец страницы, чтобы показать вам эффект: http://easyeve.w3y.de/link/index.html
Если вы откроете эту ссылку на iPhone, то контент отлично подойдет (вы не увидите ничего желтого = тело), ​​а ширина документа - 320 пикселей. На Galaxy Nexus вы увидите желтое пространство, а ширина документа - 360 пикселей (что составляет ровно половину разрешения экрана). Это тоже должно быть 320 пикселей! У вас тоже есть эта проблема, и есть ли способ ее исправить?

Обновление: я заметил ту же проблему в Galaxy Note/Android 2.3.6 Поэтому это не проблема Android 4. Это связано с большим размером экрана, я думаю.

Ответы

Ответ 1

Сама же проблема (Galaxy Nexus - Android 4.0.2), я говорю о обычной веб-странице в браузере по умолчанию

Настройка viewport meta начальная шкала меньше 1 (уменьшение), кажется, игнорируется браузером. Более высокие значения, чем 1 (увеличение) работают нормально.

В браузере есть настройки (settings- > advanced), где вы можете изменить:

  • Усиление по умолчанию - это имеет значение, но оно не устраняет проблему.
  • Страницы с автоматической установкой - в моем случае не имеет значения

Кажется, что все работает в браузере Chrome (бета на данный момент), но это браузер не по умолчанию для ICS/Galaxy Nexus.

ОБНОВЛЕНИЕ (решение):

Настройка Galaxy Nexus для метаданных "width = device-width" не работает. Настройка viewport "width = 1280" работает просто отлично (1280px - это ширина экрана галактики nexus).

Помните, что установка "width = 1280, user-scaleable = no" снова разрывает его (вы можете уменьшить масштаб, даже если есть масштабируемый пользователь = нет): (

Ответ 2

Я столкнулся с чем-то похожим на вкладке Galaxy 2. При настройке своих настроек WebSettings для апплета попробуйте установить webViewSettings.setUseWideViewPort(true); Это заставит Android рассмотреть метатег просмотра. Это игнорировалось в случае Galaxy Tab 2 для моего приложения, и все, что отображалось в окне просмотра, неправильно отображалось, пока я не изменил это.

Ответ 3

Сегодня я столкнулся с этой проблемой. Моя проблема была немного сложнее, потому что мне пришлось иметь дело с таблицей стилей Wordpress (из другой темы) в дополнение к базовому CSS. Chrome отлично работал на моем телефоне и планшете, и браузер для браузера отлично работал на планшете. Тем не менее, браузер обозревателя продолжал увеличивать масштаб и показывать мне рабочий стол. На обеих сторонах не было полей, что было правильным поведением, но браузер должен был удалить поплавки с боковой панели и разделов контента и увеличить его до основного содержимого (я использую запросы @media). Как ни странно, я действительно исправил это, предварительно установив параметр "Масштаб" на "Дальний", обновив, а затем сбросив масштаб на "Средний" и обновив его.

Я должен указать, что когда я смотрел ваши страницы HTML и CSS, я заметил, что вы задали определенную ширину пикселя для своего div. Я уверен, что вам нужно использовать проценты для ширины. Например, мое сосредоточенное содержимое div имеет margin: 0 auto;, min-width:320px;, max-width:900px; и width:100%;.