2014-09-25 23 views

回答

0

嘗試使用以下代碼,您可以將滑動手勢應用於ListView。

public class NotificationsFragment extends Fragment { 

     ListView mListView; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      mContext = getActivity(); 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      // mOnTouchListener = new MyTouchListener(); 
      view = inflater.inflate(R.layout.fragment_notification, container, false); 
      mListView = (ListView) view.findViewById(R.id.notification_list); 
      notificationtypeList = new ArrayList<String>(); 
      mListView.setOnTouchListener(new OnSwipeTouchListener(mContext)); 
      return view; 
     } 


     /** 
     * Detects left and right swipes across a view. 
     */ 
     public class OnSwipeTouchListener implements OnTouchListener { 

      private final GestureDetector gestureDetector; 

      public OnSwipeTouchListener(Context context) { 
       gestureDetector = new GestureDetector(context, new GestureListener()); 
      } 

      public void onSwipeLeft() { 
      } 

      public void onSwipeRight() { 
      } 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       return gestureDetector.onTouchEvent(event); 
      } 

      private final class GestureListener extends SimpleOnGestureListener { 

       private static final int SWIPE_DISTANCE_THRESHOLD = 100; 
       private static final int SWIPE_VELOCITY_THRESHOLD = 100; 

       @Override 
       public boolean onDown(MotionEvent e) { 
        return true; 
       } 

       @Override 
       public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
        float distanceX = e2.getX() - e1.getX(); 
        float distanceY = e2.getY() - e1.getY(); 
        int id = mListView.pointToPosition((int) e1.getX(), (int) e1.getY()); 
        if (Math.abs(distanceX) > Math.abs(distanceY) && Math.abs(distanceX) > SWIPE_DISTANCE_THRESHOLD 
          && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { 
         if (distanceX > 0) { 
          onSwipeRight(); 
         } else { 
          onSwipeLeft(); 
         } 
         return true; 
        } 
        return false; 
       } 


      return listviewElementsheight; 

     } 

    } 
+0

如何將此代碼實現爲Notification.Builder?通知欄或列表視圖中的 – 2014-09-25 15:36:01

+0

???通知欄中的 – Rajesh 2014-09-26 04:45:31

+0

(面板) – 2014-09-26 05:09:11