2016-06-15 55 views
0

でスワイプするだけ部分的行行RecyclerView swipeToDismiss削除ボタン

私はこの例を検索しました。すべてがgmailアプリのスワイプのような完全なスワイプがあり、ショーアーカイブを却下します。しかし、私は行が部分的にのみスワイプされ、行の残りの部分は削除ボタンを含むカスタムビューを持つ必要があります添付画像のようなものが欲しい。

誰かが私に例を挙げることはできますか?

ありがとうございました。微細な作品を削除するには//github.com/h6ah4i/android-advancedrecyclerviewスワイプします。https:

+0

onChildDraw()内のコードの下に追加することにより、固定しまいましたこの –

+0

@ブルワンディンラシッド私は完全なスワイプをしたくない..あなたは添付された画像から見ることができます。その制限されたスワイプは、最後のスペースのわずか4分の1をカスタムビューで残しています。この例では、行全体をスワイプします。ありがとう – User

+0

えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええんさんはこのサンプルのためにGoogleの再生のスクリーンショットを参照してください –

答えて

0

私はそれはあなたがこのリンクを参照することができ

if(actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { 

        viewHolder?.itemView?.translationX = dX/5 
        val p = Paint() 
        p.setColor(Color.parseColor("#D32F2F")); 
        val background = RectF(viewHolder?.itemView?.getRight()?.toFloat()?.plus(dX/5) ?: 0.0f, viewHolder?.itemView?.getTop()?.toFloat() ?: 0.0f, viewHolder?.itemView?.getRight()?.toFloat() ?: 0.0f, viewHolder?.itemView?.getBottom()?.toFloat() ?: 0.0f); 
        c?.drawRect(background,p); 
        val bitmap = BitmapFactory.decodeResource(context.resources,R.drawable.ic_delete_black_24dp) 
        val background_dest = RectF(viewHolder?.itemView?.getRight()?.toFloat()?.plus(dX/5) ?: 0.0f, viewHolder?.itemView?.getTop()?.toFloat()?.div(2) ?: 0.0f, viewHolder?.itemView?.getRight()?.toFloat() ?: 0.0f, viewHolder?.itemView?.getBottom()?.toFloat() ?: 0.0f); 
        c?.drawBitmap(bitmap,null,background_dest,p) 

       } else { 
        super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive) 
       } 
0
 @Override 
     public void onChildDraw(Canvas c, RecyclerView recyclerView, 
           RecyclerView.ViewHolder viewHolder, float dX, float dY, 
           int actionState, boolean isCurrentlyActive) { 

      if(actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { 

       View itemView = viewHolder.itemView;      
       if(dX < 0) { 
        itemView.setTranslationX(dX/5); 
        p.setColor(ContextCompat.getColor(getContext(), R.color.cherryRed)); 
        RectF background = new RectF((float) itemView.getRight() + dX, (float) itemView.getTop(), (float) itemView.getRight(), (float) itemView.getBottom()); 
        c.drawRect(background, p); 
        //draw text or icon as you want 
       } 
      } else { 
       super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); 
      } 
     } 
    }; 
+1

あなたの答えを説明してください! – Mazz

関連する問題