最初に2つのフラグメントがありますFragment
私はEditText
です。問題は、EditTextのデータフィールドが正しいかどうかをチェックする前に、次のフラグメントにスワイプしたくないということです。ViewPagerを使用して別のフラグメントにスワイプする前のデータを編集します
PSの下に、この写真で私の問題を説明する
I'amは:私が検索し、自分で解決策を見つけることを試みたが、それは私のために動作しませんでしたしました。
最初に2つのフラグメントがありますFragment
私はEditText
です。問題は、EditTextのデータフィールドが正しいかどうかをチェックする前に、次のフラグメントにスワイプしたくないということです。ViewPagerを使用して別のフラグメントにスワイプする前のデータを編集します
PSの下に、この写真で私の問題を説明する
I'amは:私が検索し、自分で解決策を見つけることを試みたが、それは私のために動作しませんでしたしました。
カスタムビューページャクラスを作成し、このようなスワイプイベントを処理できます。
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) return super.onTouchEvent(event);
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) return super.onInterceptTouchEvent(event);
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
}
あなたはブール値を渡すことによって、ビューページャスワイプを有効または無効にすることができます。
これは便利になります
vpPager.addOnPageChangeListener(new OnPageChangeListener() {
// This method will be invoked when a new page becomes selected.
@Override
public void onPageSelected(int position) {
Toast.makeText(HomeActivity.this,
"Selected page position: " + position, Toast.LENGTH_SHORT).show();
}
// This method will be invoked when the current page is scrolled
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// Code goes here
}
// Called when the scroll state changes:
// SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING
@Override
public void onPageScrollStateChanged(int state) {
// Code goes here
}
});
あなたがこの問題にあなたのアプローチを変更する必要があります!あなたが本当にこのアプローチに固執できる唯一の方法は、入力がオプションの場合です。そうすれば、ユーザーは制限なく移動できます。また、私は次のスワイプする前に確認のためのボタンを追加します – Eenvincible
TextWatcherを使用してこの問題の良い解決策になりますか? –