これは、AIR 3.1 上の Flex 4.6 用です。AIR 3.5 でも同じ問題が発生しました。
私が現在取り組んでいるアプリでは、テキスト入力とテキストエリアからのテキストがビュー間で画面にとどまり、スクロール中などに問題がありました。
私が提案した修正は、textinput と textarea に別のスキンクラスを使用することでした。
skinClass="spark.skins.spark.TextAreaSkin"
Adobe Flex Mobile - TextArea は Android でスクロールを拒否します。StageWebView はまったくスクロールしません。これは、TextAreaSkin を使用するためのこれらの提案の 1 つの例です。
ただし、これと同等の TextInputSkins を使用すると、かなり大きな問題が発生します。
iPad 2 (iOS6) では、ソフトキーボードはまったく表示されず、Samsung Galaxy タブレット (Android 4) では、キーボードは数字と特定の特殊文字のみを入力できます (押したままにすると大文字も許可されます)。特定の文字に表示されますが、通常のタイプでは表示されません)。
ここで、私のものと同様の問題についての別の言及を見つけました: http://forums.adobe.com/message/4078890しかし、解決策はありませんでした。
奇妙なことに、私の Android (Desire) 携帯電話ではすべて正常に動作します。また、Samsung Galaxy Tablet で別のキーボード アプリ (Swiftkey) を使用すると、それも正常に動作します。
他のアプリでこれをテストしましたが、そのアプリでも同じ問題が発生します。(そのアプリのスキンを使用しなければならなかった唯一の例は、編集不可能なテキストエリアでした-そのアプリで言及した最初の問題を見たことはありません)。
編集:私は、私が抱えている問題のほとんどを再現したいくつかのビューで、かなり基本的なデモを作成しました。スプリットビュー ナビゲーターを使用するモバイル アプリケーションです。メイン アプリケーション ファイル:
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<!-- Split View Navigator used for Tablet for panelled functionality -->
<s:SplitViewNavigator width="100%" height="100%">
<s:layout.landscape>
<s:HorizontalLayout />
</s:layout.landscape>
<s:layout.portrait>
<s:VerticalLayout />
</s:layout.portrait>
<s:ViewNavigator width.landscape="35%" height.landscape="100%"
width.portrait="100%" height.portrait="30%"
firstView="views.TestView" />
<s:ViewNavigator width="100%" height="100%" height.portrait="100%"
firstView="views.TestFormHomeView" />
</s:SplitViewNavigator>
</s:Application>
ホーム ビュー:
<fx:Script>
<![CDATA[
protected function buttonClick():void
{
navigator.pushView(TestView2);
}
protected function listClick():void
{
navigator.popView();
navigator.pushView(TestFormHomeView);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Scroller width="100%" height="100%">
<s:HGroup width="100%">
<s:List width="50%" click="listClick()">
<s:ArrayCollection>
<fx:String>Test1</fx:String>
<fx:String>Test2</fx:String>
<fx:String>Test3</fx:String>
<fx:String>Test4</fx:String>
<fx:String>Test5</fx:String>
</s:ArrayCollection>
</s:List>
<s:VGroup width="50%">
<s:TextArea id="testing" skinClass="spark.skins.spark.TextAreaSkin" />
<s:TextArea id="testing2" />
<s:Button click="buttonClick()" label="Next Screen" />
</s:VGroup>
</s:HGroup>
</s:Scroller>
</s:View>
テストビュー:
<?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="TestView">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:TextArea id="testing2" />
</s:View>
TestView2:
<?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="TestView2">
<fx:Script>
<![CDATA[
protected function goBack():void
{
navigator.popView();
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:TextArea id="testing2" />
<s:Button label="Back" click="goBack()" />
</s:View>
HomeView のメイン テキスト領域にはスキンクラスが適用されており、これには次の問題があります。
iOS (iPad2): ソフトキーボードがまったくありません。
Android (Samsung Galaxy Tab): キーボードが表示されますが、数字と特定の特殊文字しか使用できません
テキストが画面に表示されたままの問題を (他のスキンクラスなしで) 再現することはできませんでしたが、Android では、'TestView' のテキスト ボックスに何かを入力して [次の画面] をクリックすると、TestView のテキストが表示された後に消えます。ビューが読み込まれました (テキストボックスをクリックするまで)。また、画面が十分に長い場合、テキスト ボックスをスクロールすると、他のスキンクラスを使用しないと多くの問題が発生します。