Flex モバイル アプリケーション (iOS および Android にデプロイ) での Spark リストの実装に関して、非常に深刻な問題に直面しています。問題は、アイテムに触れたときにリストの選択が常に機能するとは限らないことです。実際、down
状態が設定されている場合でも、アイテムが選択されず、以前に選択されていたアイテムが選択されたままになることがあります。
List
とクラスをListBase
調べたところ、リストがマウス/タッチ イベントを受け取ることがわかりました。は起動され、実際には、適切にコミットされる選択とそうでない選択に対して同じように動作しますList
。item_mouseDownHandler
私がこれまでに見つけた違いは、commitProperties
メソッド (に属するListBase
) が失敗した選択に対して呼び出されることは決してないため、 も呼び出されないため、選択List
がcommitSelection
変更されないという事実につながります。
なぜこれが機能しないのかについて、より深い洞察を持っている人はいますか? 私は自分でこれを理解しているとは思わないので、どんな助けにも感謝します。
この問題を再現したい場合は、Flex モバイル プロジェクトをセットアップし、次のように単純なインライン レンダラーといくつかの汎用オブジェクトを使用して表示するリストを追加します。
<s:List id="myList" width="100%" height="100%">
<s:dataProvider>
<s:ArrayCollection>
<fx:Object label="Item1" />
.....
<fx:Object label="Item30" />
</s:ArrayCollection>
</s:dataProvider>
</s:List>
次に、デバイス上で指でアイテムをランダムに選択し、何が起こるかを確認します。画面に触れてもアイテムが選択されず、時々下の色が表示されます。
編集: ああ、4 回中 3 回に固執しないでください。問題を確認するには、4 回よりも少し頻繁に試行する必要がありますが、およそ 75% が適切な推定値だと思います。
Edit2: 明らかに同じ問題が発生しているため、Flex Jira にバグ レポートを提出しました: https://issues.apache.org/jira/browse/FLEX-33169