Flex Предотвратить закрытие мягкой клавиатуры - PullRequest
5 голосов
/ 29 января 2012

У меня есть мобильное приложение AIR с простым макетом:

<s:layout><s:VerticalLayout /></s:layout>

<s:TextArea width="100%" height="100%" />

<HGroup width="100%" >
     <s:Button label="button" />
     <s:Button label="button" />
     <s:Button label="button" />
</HGroup>

Приложение устанавливается на изменение размера при открытии программной клавиатуры, установив resizeForSoftKeyboard = "true" в главном приложении. TextArea использует обложку Flex 4.6 по умолчанию.
Моя проблема в том, что если пользователь откроет клавиатуру, набрав текст в моей области texArea, он не сможет нажимать кнопки под TextArea, потому что, как только он пытается нажать кнопку, программная клавиатура опускается (потому что ее фокус TextArea?) и сразу же открывается снова (потому что позиция mouseDown теперь выше TextArea?).

Как предотвратить закрытие программной клавиатуры, чтобы пользователь мог нажимать кнопки между TextArea и клавиатурой?

Спасибо

Ответы [ 2 ]

1 голос
/ 26 августа 2012

Это очень странно.Я попытался запустить вашу программу сам, и у меня нет никаких проблем:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="320" resizeForSoftKeyboard="true">
    <s:layout><s:VerticalLayout /></s:layout>

    <s:TextArea width="100%" height="100%" />

    <s:HGroup width="100%" >
        <s:Button label="button" click="trace('clicked')"/>
        <s:Button label="button" click="trace('clicked')" />
        <s:Button label="button" click="trace('clicked')" />
    </s:HGroup>
</s:Application>

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

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

0 голосов
/ 03 февраля 2012

Может быть добавить событие, чтобы вызвать клавиатуру при нажатии кнопки, т.е. в обработчике события нажатия этой кнопки.

Также (и я сам попробовал это), но в событии деактивации клавиатуры для этого представления добавьте event.preventDefault ()

Брайан

...