Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Java ==============================
- @Override
- public int convertToAbsoluteDirection(int flags, int layoutDirection) {
- if (swipeBack) {
- swipeBack = false;
- return 0;
- }
- return super.convertToAbsoluteDirection(flags, layoutDirection);
- }
- @Override
- public void onChildDraw(Canvas c,
- RecyclerView recyclerView,
- RecyclerView.ViewHolder viewHolder,
- float dX, float dY,
- int actionState, boolean isCurrentlyActive) {
- if (actionState == ACTION_STATE_SWIPE) {
- setTouchListener(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
- }
- super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
- }
- private void setTouchListener(Canvas c,
- RecyclerView recyclerView,
- RecyclerView.ViewHolder viewHolder,
- float dX, float dY,
- int actionState, boolean isCurrentlyActive) {
- recyclerView.setOnTouchListener(new View.OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- swipeBack = event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_UP;
- return false;
- }
- });
- }
- c# ===============================
- public override int ConvertToAbsoluteDirection(int flags, int layoutDirection)
- {
- if (swipeBack)
- {
- swipeBack = false;
- return 0;
- }
- return base.ConvertToAbsoluteDirection(flags, layoutDirection);
- }
- public override void OnChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, bool isCurrentlyActive)
- {
- if (actionState == ItemTouchHelper.ActionStateSwipe)
- {
- SetTouchListener(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
- }
- base.OnChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
- }
- private void SetTouchListener(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, bool isCurrentlyActive)
- {
- recyclerView.Touch += (v, e) =>
- {
- swipeBack = e.Event.Action == MotionEventActions.Cancel || e.Event.Action == MotionEventActions.Up;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement