Android用のウィザードライブラリを構築しています。これにより、レイアウト(他のビューを含む)をウィザードに追加します。
これらの子を検証できるように、親 ViewGroup がその子でリッスンできる何らかのイベントを把握する必要があります。検証が完了すると、ウィザードはユーザーが次のページに移動できるようにします。
MotionEvent タイプ ACTION_UP をリッスンしてみました。残念ながら、ViewGroup でこれをリッスンすると、子の状態が変更される前に起動します (つまり、子の前に呼び出されるため、これを知っている子から利益を得ることができません)。
どんな提案でも大歓迎です。
前もって感謝します。
更新検証とは、次のことを意味します: 2 つのページを持つウィザードを検討してください。
+-----------+-----------+
|Page 1 |Page2 |
|------ |----- |
|Radio Bttn | |
|EditView | |
| | |
| | |
| next| |
+-----------+-----------+
各ページの次へのボタンは無効になっています。ユーザーがページ 1 の次のボタンを押してページ 2 に移動するには、ページ 1 のラジオ ボタンと editview の両方が空でない必要があります。そのため、ページ 1 の子の状態がいつ変化したかを判断する一般的な方法が必要です。私の考えは、子供の状態が変更されたときに、誰かがインターフェースを介してサブスクライブするイベントを発生させるというものです。このイベントは「ValidateView」の行に沿って発生し、ユーザーは独自のビジネス ロジックを介してプログラムで次のページに移動できるかどうかを判断します。これが発生すると、ページ 1 の次へのボタンが有効になります。ページ 1 は任意の一般的なビューグループにすることができ、私が提示したビュー以外のビューを含めることができることに注意してください。これが、子にリスナーを追加したくない理由です。