Swipe ListView item From right to left show delete button

后端 未结 11 798
轻奢々
轻奢々 2020-12-07 09:15

I have a custom ListView showing the list of words selecting from database. When I swipe this listview item i want to show Delete button like image below. And when I press t

11条回答
  •  轮回少年
    2020-12-07 09:33

    see there link was very nice and simple. its working fine... u don't want any library its working fine. click here

    OnTouchListener gestureListener = new View.OnTouchListener() {
        private int padding = 0;
        private int initialx = 0;
        private int currentx = 0;
        private  ViewHolder viewHolder;
    
        public boolean onTouch(View v, MotionEvent event) {
            if ( event.getAction() == MotionEvent.ACTION_DOWN) {
                padding = 0;
                initialx = (int) event.getX();
                currentx = (int) event.getX();
                viewHolder = ((ViewHolder) v.getTag());
            }
            if ( event.getAction() == MotionEvent.ACTION_MOVE) {
                currentx = (int) event.getX();
                padding = currentx - initialx;
            }       
            if ( event.getAction() == MotionEvent.ACTION_UP || 
                         event.getAction() == MotionEvent.ACTION_CANCEL) {
                padding = 0;
                initialx = 0;
                currentx = 0;
            }
            if(viewHolder != null) {
                if(padding == 0) {
                    v.setBackgroundColor(0xFF000000 );  
                    if(viewHolder.running)
                        v.setBackgroundColor(0xFF058805);
                }
                if(padding > 75) {
                    viewHolder.running = true;
                    v.setBackgroundColor(0xFF00FF00 );  
                    viewHolder.icon.setImageResource(R.drawable.clock_running);
                }
                if(padding < -75) {
                    viewHolder.running = false;
                    v.setBackgroundColor(0xFFFF0000 );  
                }
    
                v.setPadding(padding, 0,0, 0);
            }
    
            return true;
        }
    };
    

提交回复
热议问题