1

ViewPagerを使用して、ユーザーが左右に反転して特定のアクティビティのページ間を移動できるようにしました。

ViewPager のページの流れをプログラムで制御することは可能ですか?

例: ユーザーが現在のページで特定の EditText を入力しなかった場合、次のページに移動できないようにします。

別のケース: ユーザーが現在 1 ページ目にいて、指定された EditText に特定の値を入力し、ユーザーが右から左にフリップした場合、2 ページ目ではなく 5 ページ目に直接移動するようにします。

4

1 に答える 1

0

「反転」とは、指でドラッグすること、またはアニメーションに ViewPager を使用することを意味しますか?

前者の場合、必要な効果を得るには、ViewPager の子を動的に編集する必要があります。onInterceptTouchEvent()ページが完了するまでタッチ イベントをブロックするようにオーバーライドできます。

ただし、ViewPager での指ドラッグを無効にし (おそらく を使用onInterceptTouchEvent())、 を使用setCurrentItem(4, true)してアニメーションを表示し、特定のページに移動することをお勧めします。必要なロジックは、 を呼び出すボタンを使用して実装できますsetCurrentItem(4, true)。たとえば、フォームが完全に完成しない限りグレー表示される「次へ->」ボタンを作成できます。とにかく、それは最初のオプションよりも直感的です。

編集: 4 は、切り替え先の子インデックスです。

于 2012-08-19T03:04:05.770 に答える