2013-03-21 103 views
2

我有一些与Android onGestureListener问题,我有3个线性布局水平坐在一个线性布局中彼此相邻,线性布局位置设置为中间布局onCreate,中间布局还包含一个列表视图里面,我想要发生的是当我向左或向右滑动布局移动时,这似乎没有拿起手势,当我尝试在列表视图中向左或向右滑动线性布局但是如果我在其他没有任何内容的视图上向左或向右滑动,它会根据相应的姿势和视图进行动画处理,以前是否有人有过这个问题,或者有想法如何解决它?任何帮助将很长的路要走感谢Android OnGestureListener问题当视图中包含一个列表视图

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    // TODO Auto-generated method stub 
    return gestureDetector.onTouchEvent(event); 
} 

SimpleOnGestureListener simpleOnGestureListener = new SimpleOnGestureListener() { 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
      float velocityY) { 

     float sensitvity = 50; 
     if ((e1.getX() - e2.getX()) > sensitvity) { 
      slideLeft(); 
     } else if ((e2.getX() - e1.getX()) > sensitvity) { 
      slideRight(); 
     } 

     return true; 
    } 

}; 

private void slideRight() { 

    if (swipeDirection > -1) { 
     if (swipeDirection == 0) { 
      layoutContainer.animate().translationX(theDistance - 0) 
      .setDuration(500); 
     } else { 
      //go to home 
      layoutContainer.animate().translationX(0).setDuration(500); 
     } 

     swipeDirection--; 
    } 

} 

private void slideLeft() { 

    if (swipeDirection < 1) { 
     if (swipeDirection == 0) { 
      layoutContainer.animate().translationX(0 - theDistance) 
      .setDuration(500); 
     } else { 
      layoutContainer.animate().translationX(0).setDuration(500); 
     } 

     swipeDirection++; 
    } 

} 

回答

0

ListView本身内置了已经手势监听器(用于滚动列表),并且可能还具有对列表中的各个项目的onItemClickListener。这可能会干扰整个布局的滑动行为。

该解决方案通过Pinhassi这里解释了工作最适合我至今: Android Swipe on List

可能是你需要在你的ListView的onItemClickListener扩大,包括上面提到的刷卡探测器。另外,将@Override放在声明onItemClick的行的前面可能需要覆盖listview侦听器。这样,你会维护可点击的列表项目,你可以在它们上执行滑动操作。