文本输入文本不会显示,除非它集中在flex 4.6 android应用程序中

时间:2012-04-26 10:32:07

标签: actionscript-3 flex air android-emulator flex4.6

我正在使用flex 4.6和air 3.1为android开发AIR应用程序。在应用程序中我有一个视图,其中有一个textinput和一个搜索按钮。输入一些文本并单击搜索按钮将进入结果视图从结果视图中,用户可以通过单击后退按钮返回到searchview。SearchView的destructonPolicy保留为never,我使用navigator.popView()返回searchview。问题出在何时我回到搜索视图textinput是空的,其中它应该显示以前键入的txt。但是当焦点在textnput上时,文本出现。我希望一旦再次显示该视图就会显示该文本。不知道为什么会出现这个问题

PS - 当我在Android模拟器(OS 2.3.3)中检查aftr installng apk时,会发生这个问题。我没有安卓设备来检查这个。所以不确定是不是只是模拟器的一个问题。如果我使用flex 4.5.1 sdk这个问题正在发生

以下是代码

主要mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                            xmlns:s="library://ns.adobe.com/flex/spark" firstView="views.HomeView">
</s:ViewNavigatorApplication>

HomeView.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView" destructionPolicy="never">

    <fx:Script>
        <![CDATA[
            protected function button1_clickHandler(event:MouseEvent):void
            {
                navigator.pushView(ResultView);
            }
        ]]>
    </fx:Script>
    <s:layout>
        <s:VerticalLayout horizontalAlign="center"/>
    </s:layout>
    <s:TextInput prompt="Enter some text"/>
    <s:Button label="Search" click="button1_clickHandler(event)"/>
</s:View>

ResultView.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" title="ResultView">

    <fx:Script>
        <![CDATA[
            protected function button1_clickHandler(event:MouseEvent):void
            {
                navigator.popView();

            }
        ]]>
    </fx:Script>

    <s:navigationContent>
        <s:Button label="&lt;" click="button1_clickHandler(event)"/>
    </s:navigationContent>
</s:View>

1 个答案:

答案 0 :(得分:5)

由于Flex 4.6存在问题;但不是Flex 4.5,它可能是使用StageText的新默认TextInput外观的副作用/重绘问题。我写了一点here

在4.6应用程序中,尝试设置默认的Flex 4.5皮肤:

<textInput skinClass="spark.skins.mobile.TextInputSkin" />