モバイルアプリ用にSpark Listコンポーネントを使い、そのItemRendererをカスタムで作成していました。
モバイル用なので、ItemRendererといっても「hovered」や「dragging」などはなく、また、この場合「selected」も必要ありませんでした。
「states」は2つ設定しており、1つはデフォルトの状態で、もう1つは特別なItemのみ使用するものでした。
特に意味もなくデフォルトのview stateの名前に「normal」と設定していました。これが原因だったんですが。。。
今思えば単純ですが、この「normal」という名前のせいで、「selected」はview statesに宣言していないにもかかわらず、リストのItemをクリックした際に、view statesの状態が「selected」に替わってしまいました。selectedの処理を入れていなので、特に関係ないと思うかもしれませんが、もう1つのview statesに設定してあったItemも「selected」の状態になり、設定が変更されてしまいました。このItemの状態は勝手に変更されると困るんです。。。
「selected」は宣言していなかったので、なんでだろうとかなり悩んでいました。「normal」という名前を「default」に変更したところ、この現象は起きなくなりました。
ここから、「normal」という名前はプリセットされた名前なので、これを使用すると自動的に「slected」なども宣言していなくても、使用されるようです。。。
特に意味もないなら「normal」という名前は使わないようにしましょう。
ちなみに予約されている名前は以下のものです。
- normal
- hovered
- selected
- dragging
- normalAndShowCaret
- hoveredAndShowCaret
- selectedAndShowCaret
0 件のコメント:
コメントを投稿