рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рддрддреНрд╡ рд╕реЗ Drag'n'Drop рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рдФрд░ рдлреИрд░реЛрдУ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реВрдЪреА рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рд╕реЗ рдПрдХ рддрддреНрд╡ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рд╣рдорд╛рд░реЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
рд╡рд┐рд╖рдп рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЕрдХреНрд╕рд░ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рд░реНрдл рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рд╣рдо рдкрд╛рддреЗ рд╣реИрдВред рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛" рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рддрд╛ рд╣реИред
рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рдБрдЪ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ...
рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_CANCEL, 0, 0, 0));
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ - рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рдиред рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдХреА рдЯрдЪ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕рдордп рдкрд░ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реИред
рд╕рдорд╛рдзрд╛рди рд╕реБрдВрджрд░ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдФрд░ рдпрд╣рд╛рдБ рдмрд╛рдд рдХреЗрд╡рд▓ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реГрдЬрди рдХреЗ рдмрд╛рдж рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рд╕рдорд╛рдзрд╛рди рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд╣реИред
рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
public class ScrollViewEx extends ScrollView { protected boolean scrollActive = true; public ScrollViewEx(Context context) { super(context); } public ScrollViewEx(Context context, AttributeSet attrs){ super(context,attrs); } public ScrollViewEx(Context context, AttributeSet attrs, int defStyle){ super(context,attrs,defStyle); } public void stopScroll(){ scrollActive = false; } @Override public boolean dispatchTouchEvent(MotionEvent event){ if (event.getAction()==MotionEvent.ACTION_DOWN) scrollActive = true; if (scrollActive || event.getAction()!=MotionEvent.ACTION_MOVE) return super.dispatchTouchEvent(event); return false; } }
рдпрд╣рд╛рдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдмрд╛рдд рдХреА рдЧрдИ рд╣реИ - рдПрдХ рдЪрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдЪрд░ рд╕рд╣реА рд╕рдордп рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬрдм рдЖрдк рдХрд┐рд╕реА рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╣ рд╕рдм рдЬреЛ рдЪрд░ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╡рд┐рдЬреЗрдЯ рдХреЛ "рдЯрдЪ рдореВрд╡" рдИрд╡реЗрдВрдЯ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рд╕рд╣реА рд╕рдордп рдкрд░, рд╣рдо рд╕реНрдЯреЙрдкрд╕рд░реНрдХрд▓ рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕реВрдЪреА рд╕реНрдкрд░реНрд╢ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдВрджреЛрд▓рди рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддреА рд╣реИред рдХреЛрдИ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд┐рд░ рд╕реЗ рд╕реВрдЪреА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рд╡рд╛рдкрд╕ рдЪрд╛рд▓реВ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдФрд░ рд╕рд╣реА рд╣реИред