【问题标题】:Flex on Android: App screen goes black when the soft keyboard pops upAndroid 上的 Flex:弹出软键盘时应用程序屏幕变黑
【发布时间】:2015-04-01 13:19:42
【问题描述】:

我的 Android 平板电脑(Samsung Note 10.1)的 Flex 应用程序中有一个奇怪的随机问题。

有时(这真的是随机的)当我单击 TextInput 并弹出软键盘时,整个屏幕变黑。一旦发生,每次单击 TextInput 时它都会变黑。如果我重新启动应用程序,一切都会再次正常。

我的设置:Flex SDK 4.13.0 + AIR 14.0 TextInput 没有使用任何皮肤,只是默认的 RenderingMode:CPU(不能使用 GPU)

【问题讨论】:

  • 你用过吗? spark.skins.mobile.TextInputSkin
  • 或使用。 ClassReference("spark.skins.mobile.StageTextInputSkin");
  • 是应用程序的整个屏幕还是只是软键盘区域?检查您的应用中是否存在任何导致问题的软键盘侦听器,或尝试使用不同的 sdk(可能较旧)并使用不同的 flash playerVersion 构建。
  • 整个屏幕变黑。不,没有听众或任何东西。一直运行良好,直到我们切换到新的 SDK。谢谢各位大神指点,我试试看。

标签: android actionscript-3 apache-flex actionscript air


【解决方案1】:

好的,我仍然不能 100% 确定该问题是否已解决,但在我尝试了两件事后很长时间没有出现:

  1. 我的应用程序正在使用相机,我在某处读到相机给某些人带来了类似的问题。事实上,事实证明相机在我的代码中没有正确分离。这对我没有帮助,但也许它会帮助其他人

  2. 我在一些第三方组件代码中发现了这个 hack(不记得在哪里),显然它确实有帮助。基本上,它来回切换应用程序质量,迫使 Flex 重绘。因此,在您的主 MXML 中,将此代码放在“addToStage”事件之后:

    private function onAddedToStage():void
    {
        //Workaround for blank screen after screen unlock.
        stage.addEventListener(Event.ACTIVATE, function(e:Event):void
        {
            stage.quality = StageQuality.MEDIUM;
        });
        stage.addEventListener(Event.DEACTIVATE, function(e:Event):void
        {
            stage.quality = StageQuality.LOW;
        });
    }
    

【讨论】:

    猜你喜欢
    • 2011-06-03
    • 2011-02-03
    • 2011-01-30
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2015-10-26
    相关资源
    最近更新 更多