2015-06-20 127 views
1

我是android新手。我一直使用片段來創建我的應用程序。 所以我從這個here複製材料樣式抽屜。類必須聲明爲抽象或?

現在我在這部分代碼面臨一個問題:

static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener { 

    private GestureDetector gestureDetector; 
    private ClickListener clickListener; 

    public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) { 
     this.clickListener = clickListener; 
     gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { 
      @Override 
      public boolean onSingleTapUp(MotionEvent e) { 
       return true; 
      } 

      @Override 
      public void onLongPress(MotionEvent e) { 
       View child = recyclerView.findChildViewUnder(e.getX(), e.getY()); 
       if (child != null && clickListener != null) { 
        clickListener.onLongClick(child, recyclerView.getChildPosition(child)); 
       } 
      } 
     }); 
    } 

    @Override 
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 

     View child = rv.findChildViewUnder(e.getX(), e.getY()); 
     if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) { 
      clickListener.onClick(child, rv.getChildPosition(child)); 
     } 
     return false; 
    } 

    @Override 
    public void onTouchEvent(RecyclerView rv, MotionEvent e) { 
    } 
} 

在這個片段中提示錯誤。我可以給image的錯誤

我試圖讓類抽象,但它然後干擾oncreate束代碼。任何幫助,將不勝感激

回答

3

您正在實現的接口有三種方法。你正在實施其中兩個。您需要添加但不

onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) 

RecyclerView孩子不希望RecyclerView及其祖先攔截觸摸事件與被調用。您可以簡單地添加

@Override 
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 
} 

到類

7

這個消息告訴你,那RecyclerView.OnItemTouchListener(這是一個接口)定義了一個名爲onRequestDisallowInterceptTouchEvent(boolean)方法。該方法需要由實現OnItemTouchListener接口的每個類來實現。

所以才添加此方法一個空的身體......

@Override 
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 
} 

...和對Java語言界面一看: https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

+0

謝謝...只是多了一個題 。我把它放在哪裏? –

+1

你需要把這個方法放在你的'RecyclerTouchListener'類 –

+0

非常感謝你 –

相關問題