我用RecyclerView與ItemTouchHelper做刷卡刪除,並添加類似這樣的刷卡項目下刪除按鈕: RecyclerView ItemTouchHelper如何鎖定滑動項目?
但是,當我完成刷卡,該項目將被從列表中移除很快! 如何鎖定已滑動的物品,並通過點擊刪除按鈕將其刪除? 就像Gmail的行爲一樣。
我用RecyclerView與ItemTouchHelper做刷卡刪除,並添加類似這樣的刷卡項目下刪除按鈕: RecyclerView ItemTouchHelper如何鎖定滑動項目?
但是,當我完成刷卡,該項目將被從列表中移除很快! 如何鎖定已滑動的物品,並通過點擊刪除按鈕將其刪除? 就像Gmail的行爲一樣。
張貼同樣的問題在您的SimpleCallback
設置你的getMovementFlags()
然後OnClickListeners:
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
if (dX > ARCHIVE_LAYOUT_WIDTH) {
getDefaultUIUtil().onDraw(c, recyclerView, ((YOUR_VIEW_HOLDER) viewHolder).getSwipableView(), dX, dY, actionState, isCurrentlyActive);
}
}
這不是最乾淨的解決方案,但它讓你更接近。
只需按照例如 「Support7Demos/src目錄/ COM /例子/安卓/ supportv7 /空間/觸摸/ SwipeToDismissActivity.java」,並在方法一小變 「onChildDraw」
public boolean onChildDraw(Canvas c, RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState,
boolean isCurrentlyActive) {
float translationX = Math.min(-dX, viewHolder.itemView.getWidth()/2);
viewHolder.itemView.setTranslationX(-translationX);
return true;
}
此方法必須返回true,否則ItemTouchUIUtil將覆蓋translationX Screenshot
很酷它爲我的woking –
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
float translationX;
if(dX > 0){
translationX = Math.min(-dX, viewHolder.itemView.getWidth()/2);
}
else {
translationX = Math.max(dX, (-1)* viewHolder.itemView.getWidth()/2);
}
super.onChildDraw(c, recyclerView, viewHolder, translationX, dY, actionState, isCurrentlyActive);
}
不幸的是,這隻適用於當你打開時,當你關閉你需要恢復你收到的dX,直到你達到門檻。然後,當您釋放時,您會看到從中間開始的項目,因爲真正的dX位於中間。 – Davidea
這個職位之前提出的解決方案使只有最終效果1/5。
不幸的是,它們只在滑動才能打開1個項目時才起作用,但當您關閉它時,您需要恢復從參數接收的dX量,直到達到閾值。然後,當你釋放你看到從中間開始的項目,因爲你收到的真正的dX仍然指向中間!真是醜陋的故障。
我相信ItemTouchHelper僅適用於每次完全滑動1個項目。除非有一種方法可以停止接收DX比所需的寬度更大,那麼你需要解決以下問題:
你有能力實現它..如果是的請分享recyclerview的ItemTouchHelper ...我卡住了,我發佈了類似這樣的問題,http://stackoverflow.com/questions/35131463/swipe -with-recyclerview-without-any-third-party-library – TheReprator