2015-04-13 2 views
0

Теперь, когда приложения для Android можно запускать в ОС Chrome и используя {"resize": "reconfigure"}, они стали повторно значимыми, теперь есть потребность в более гибких макетах. Чтобы сделать мой макет более отзывчивым, мне нужен прослушиватель событий, который знает, когда окно приложения меняет размер.ARC app resize window event

Есть ли кто-нибудь, кто делает это и как?

FYI: Я хочу сделать что-то похожее на концепции полимеры Scaffold (https://www.polymer-project.org/0.5/components/core-elements/demo.html#core-scaffold)

+2

Надеюсь, это приведет к нормальной логике изменения конфигурации, как если бы пользователь повернул экран. – CommonsWare

+2

Да, все, что он делает, вызывает изменение конфигурации. В Android нет события изменения размера, поскольку большинство устройств имеют небольшие экраны, поэтому приложения просто отображают полноэкранный режим. Ближе всего к чему-то вроде того, когда появляется виртуальная клавиатура. Но при изменении размера окна ARC вся поверхность дисплея, доступная вашему приложению, изменяется в отличие от всплывающего окна клавиатуры. –

+0

@LloydPique Вы хотите сказать это в ответ? Мне не нравятся открытые вопросы. – Theyouthis

ответ

3

ARC не отправляет простое событие на уровне приложений на оконное изменения размера. Android определяет событие изменения размера, которое используется при появлении виртуальной клавиатуры, но это не полезно для ARC, поскольку это больше касается ограничения вашего приложения на меньшую часть дисплея (которая по-прежнему одного размера)

Вместо этого он отправляет больше событий на системном уровне, заставляя Android-код думать, что размер дисплея изменился. Это практически то же самое, что и при повороте телефона Android, вызывающего событие изменения ориентации. После этого платформа Android передает это приложение в качестве стандартного вызова Activity.onConfigurationChanged().

Вы должны иметь возможность использовать значения, содержащиеся в аргументе Configuration newConfig (например, screenWidthDp и screenHeightDp), чтобы решить, как отображать пользовательский интерфейс.