2016-04-20 64 views
0

我一直在嘗試使用ItemTouchHelper在RecyclerView列表中拖動和滑動操作。我已經使用這guide,它的工作完美,除了我無法使LongClick上的滑動激活。我已經成功地做到這一點的拖動動作:在RecyclerView列表中拖動並滑動

 textview.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       dragStartListener.onStartDrag(holder); 
       return false; 
      } 
     }); 

我不知道該怎麼做了刷卡,因爲它不具有onStartSwipe()接口和我的任何企圖實施一個通過模仿onStartDrag()接口失敗。
如何製作?感謝您的時間。


我已經設法實現了onStartSwipe()接口,它自己工作。但是,一旦我嘗試在同一個視圖上同時執行拖動和輕掃,它就會出現奇怪的現象。更確切地說,一旦我觸摸視圖,對於整個按住,只有拖動或僅滑動動畫將被激活。

不僅如此,在這兩個動作之間進行選擇是很困難的,因爲它會得到您在兩者之間選擇的第一個微動運動。

我試圖此代碼爲上述的說明:

 tv.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       mDragStartListener.onStartDrag(holder); 
       return false; 
      } 
     }); 

     tv.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       mSwipeStartListener.onStartSwipe(holder); 
       return true; 
      } 
     }); 

我也試圖使用這樣的的FrameLayout:

 tv.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       mDragStartListener.onStartDrag(holder); 
       return true; 
      } 
     }); 

     fl.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       mSwipeStartListener.onStartSwipe(holder); 
       return true; 
      } 
     }); 

在這裏,我拖動的TextView和我輕掃的FrameLayout。但是由於文本視圖位於框架佈局的頂部,因此只能拖動,並且有時會在您觸摸項目的角部時滑動。

關於如何在同一項目上進行拖拽和滑動工作的任何想法?我想要能夠拖動或滑動,一旦元素是LongClicked。我可以使用單獨的ImageView進行拖拽,並使用TextView進行拖拽,但我寧願不必這樣做,因爲它會破壞我的設計。

+0

爲什麼你的監聽器添加到TextView的? –

+0

@OliverU。那是因爲textview它是我在RecyclerView List中的行元素。也許這會更好,如果我使用包含TextView的LinearView? – Starivore

+0

Whybdo你想要longclickbehavior刷卡? –

回答

0

我不知道你爲什麼在recyclerview中使用draghelpers。 您可以使用ItemTouchHelper代替 它允許拖放和滑動。

ItemTouchHelper SimpleCallBack

Tutorial for implementation

+0

我已經使用ItemTouchHelper! – Starivore

+0

那麼最新的問題?你被置於在物品觸摸助手中設置移動標誌,然後將觸摸助手分配給回收商viee –

+0

你看過第一篇文章嗎?它應該被描述得很好.. – Starivore