Flipper를 부모로, Listview를 자식으로 사용하고 있습니다. 내 문제는 목록보기에서 항목을 뒤집고 클릭하는 것입니다. 다음 페이지로 넘어갈 때 (오른쪽에서 왼쪽으로 드래그하여) 실수로 목록 항목을 클릭합니다.안드로이드의 Flipper 및 ListView
제스처를 이미 내렸을 때 listview의 onClick을 어떻게 비활성화 할 수 있습니까?
코드 :
플리퍼 Ontouch :
public boolean dispatchTouchEvent(MotionEvent touchevent) {
super.dispatchTouchEvent(touchevent);
switch (touchevent.getAction()) {
case MotionEvent.ACTION_DOWN: {
lastX = touchevent.getX();
break;
}
case MotionEvent.ACTION_UP: {
float currentX = touchevent.getX();
if (lastX - 100 > currentX) {
if (result_pageNum < max_pageNum) {
result_pageNum++;
if (vf.getDisplayedChild() == 0) {
listView[1].setClickable(false);
setListView(1);
} else {
listView[0].setClickable(false);
setListView(0);
}
vf.setInAnimation(this, R.anim.in_from_right);
vf.setOutAnimation(this, R.anim.out_to_left);
vf.showNext();
}
} else if (lastX + 100 < currentX) {
if (result_pageNum > 0) {
result_pageNum--;
if (vf.getDisplayedChild() == 1) {
listView[0].setClickable(false);
setListView(0);
} else {
listView[1].setClickable(false);
setListView(1);
}
vf.setInAnimation(this, R.anim.in_from_left);
vf.setOutAnimation(this, R.anim.out_to_right);
vf.showPrevious();
}
}
break;
}
}
return false;
}
목록보기의 onclick :
날뛰는 제스처가 (ACTION_UP 이벤트에서) 발견되었습니다 당신의 dispatchTouchEvent 방법에private void listView_onClick() {
for (int i = 0; i < listView.length; i++) {
listView[i].setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.maketext(this,"Working!",Toast.LENGTH_LONG).show();
}
});
}
}
ViewFlipper가 복잡한 ViewGroups (예 : ListView)를 염두에두고 개발되었다고 생각하지 않습니다. 이전에는 단순한 ImageView에만 사용했습니다. 그, 나는 ViewPager를 사용하여 목록보기,지도 조각, 그리고 그것은 잘 작동합니다. 어쩌면 다시 생각하고 바꿔야 할 것입니다. – Budius