5

我有一个布局简单的移动 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 和键盘之间的按钮?

谢谢

4

2 回答 2

1

这很奇怪。我试过自己运行你的程序,我一点问题都没有:

<?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>

触摸文本区域时键盘打开,单击按钮时关闭(不再打开),调试时单击显示在控制台中。

你没有发布整个应用程序,你在完整的程序中有什么我没有的吗?在这种情况下,我会看看是否有任何可能干扰 UI。

于 2012-08-25T21:25:54.047 回答
0

也许添加一个事件以在单击按钮时调出键盘,即在该按钮的单击事件处理程序中。

另外(我自己也没有尝试过),但是在该视图的键盘停用事件中,添加 event.preventDefault()

布赖恩

于 2012-02-03T11:41:56.037 回答