バックグラウンド
ページ間を移動するために使用される viewPager と tabHost があります。
場合によっては、viewPager 内のフラグメントがナビゲートを禁止し、フラグメントで行われた変更が取り消されることをユーザーに確認するダイアログを表示することさえあります。
ユーザーが確認した場合はナビゲートを許可し、そうでない場合は許可しません。
問題
ユーザーが別のタブに移動しようとしたときに通知を受け取る必要があり、(私が作成したいくつかの条件下で) それを許可/禁止します。
私が試したこと
私が見つけた唯一の機能は、切り替えを無効にする方法です。
viewPager の場合、次を使用します。
mViewPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(final View v, final MotionEvent event) {
return !mIsTabsSwitchingEnabled;
}
});
および tabHost には、次を使用します。
mTabHost.getTabWidget().setEnabled(mIsTabsSwitchingEnabled);
しかし、私が必要としているものはまったく異なります。ナビゲートを開始するイベントをキャプチャし、それを許可するかどうかを判断できるようにする必要があります。
質問
この問題を解決するにはどうすればよいですか?
ナビゲートの開始時に通知を受け取り、必要に応じてキャンセルするにはどうすればよいですか?