私の現在のプロジェクトでは、ほぼすべての側面からカスタマイズされたスピナー クラスを扱ってきました。したがって、私はそれに対処するにつれて、いくつかの詳細な側面を獲得しました。だから私はそれがなぜ欠陥があるのか を示す部分から始めます.
1_ポップアップ ウィンドウ/レイアウト/ダイアログの作成 - 表示 (レイアウトの膨張) イベントで起動されるデフォルトのリスナーはありません。スピナーのオンタッチリスナーなどのいくつかの回避策があり、スピナー領域でオンタッチ終了が発生したかどうかを確認すると、ポップアップが表示されることがわかりますが、ポップアップを非同期タスクで埋めることができるため、まだ信頼できません..
2_On item selected イベントは、同じインデックスが再度選択されたときに発生しません。現在の選択やリストの順序などを変更する他の条件に応じてアダプターを更新する可能性があるため、これは本当に面倒です...もちろん、独自のスピナークラスを作成し、com.myproject.customspinner のような xml に追加することによる回避策があります。 etc.....( Spinner : onItemSelected は、選択されたアイテムが同じままの場合には呼び出されません)
3_スピナーの機能OnClickListener および OnItemLongTouchListener イベントがありません。
4_スピナー ドロップダウン リスト分割要素の色などの属性の変更は、すべてのドロップダウンとスピナーの背景ビュー自体を変更するよりも多くの労力を必要としますが、これは非常にばかげています。
5_Spinner 名前自体は非常にばかげています =)))。
では、スピナーの代わりに何を使用できますか? 最適な方法はどれですか?