I need to hide the errors when an user makes a scroll up and display back when the user scrolls down enough.
Here is the code:
ScrollView scrollViewContainer = (ScrollView) rootView.findViewById(R.id.scrollViewContainer);
mGestureDetector = new GestureDetector(scrollViewContainer.getContext(), new OnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
System.out.println("GestureDetector --> onDown");
return true;
}
@Override
public void onShowPress(MotionEvent e) {
System.out.println("GestureDetector --> onShowPress");
// TODO Auto-generated method stub
for (int i = 0; i < editTextList.size(); i++) {
String error = editTextError.get(i);
editTextList.get(i).setError(error);
}
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
System.out.println("GestureDetector --> onSingleTapUp");
for (int i = 0; i < editTextList.size(); i++) {
//list with errors
String error = editTextError.get(i);
//list with edit text
editTextList.get(i).setError(error);
editTextList.get(i).setFocusableInTouchMode(true);
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("GestureDetector --> onLongPressTapUp");
for (int i = 0; i < editTextList.size(); i++) {
String error = editTextError.get(i);
editTextList.get(i).setError(error);
}
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
LogS.i("GestureDetector --> onFling");
// TODO Auto-generated method stub
for (FloatLabeledEditText floatLabeledEditText : editTextList) {
floatLabeledEditText.setError(null); }
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
LogS.i("GestureDetector --> onScroll");
for (FloatLabeledEditText floatLabeledEditText : editTextList) {
floatLabeledEditText.setError(null);
floatLabeledEditText.setFocusableInTouchMode(false);
}
return false;
}
});
mGestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (mGestureDetector.onTouchEvent(event)) {
return true;
}
if(event.getAction() == MotionEvent.ACTION_UP) {
if(mIsScrolling ) {
System.out.println("OnTouchListener --> onTouch ACTION_UP");
for (FloatLabeledEditText floatLabeledEditText : editTextList) {
floatLabeledEditText.setError(null);
}
Log.d("OnTouchListener --> onTouch ACTION_UP");
mIsScrolling = false;
}
}
if(event.getAction() == MotionEvent.ACTION_DOWN) {
if(mIsScrolling ) {
System.out.println("OnTouchListener --> onTouch ACTION_Down");
for (FloatLabeledEditText floatLabeledEditText : editTextList) {
floatLabeledEditText.setError(null);
}
mIsScrolling = false;
}
}
return false;
}
};
scrollViewContainer.setOnTouchListener(mGestureListener);