【发布时间】:2015-04-21 10:08:17
【问题描述】:
我需要在用户向上滚动时隐藏错误,并在用户向下滚动时显示回来。
代码如下:
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);
【问题讨论】:
-
我已经更正了我的答案,现在检查一下
标签: android