好吧,在隱約流浪了大約一週之後,我發現了一種解決方法來驗證輸入,同時也防止了滑動。
第1步:第一件事情就是要實現一個自定義視圖尋呼機類作爲
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Toast;
public class FirstRunPager extends ViewPager {
private boolean isPagingEnabled;
public Context context;
public FirstRunPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.isPagingEnabled = true;
this.context = context;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (isPagingEnabled) {
return super.onTouchEvent(event);
}
Toast.makeText(context, "Please fill in the details, then swipe !",
Toast.LENGTH_LONG).show();
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (isPagingEnabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean b) {
isPagingEnabled = b;
}
}
第2步:所以,現在我可以防止僅僅通過設置揮筆進行分頁啓用假的,同時任何觸摸事件由Toast響應,提示用戶填寫所有字段。
步驟3:片段後可見
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
if (isVisibleToUser) {
// set isPagingEnabled false here
// validate EditText values here using Text Watcher
// if all okay
// set isPagingEnabled = true
// tell the user through a Toast, that he can swipe now.
}
}
這就是我怎樣,我現在實施驗證。如果我改進我的代碼,我會更新它。
如何訪問片段中的setPagingEnabled()? – iYonatan