마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Drag and Drop 관련 질문입니다. Boundary 영역.

0 추천

안녕하세요. 현재 GridLayout 안에 다른 여러 Layout이 있는데 

이 안의 Layout 들을 drag and drop 시키는 기능을 만들고 있습니다.

다른건 다 잘 되는데 item(layout)을 롱클릭 후 Moving 할 때 GridLayout 이외의 영역까지 해당 아이템이 움직이고있습니다.

저는 GridLayout 안에서만 해당 아이템이 움직이게 하고싶은데 이렇게 하려면

어떻게 영역 지정을 해야하고 막아야 하는지 감이 오질 않습니다... ㅠㅠ

고수님들의 많은 조언 부탁드리겠습니다.

public boolean onLongClick(final View v) {
                mLayout_X=getLayoutParams().width-v.getWidth();
                mLayout_Y=getLayoutParams().height-v.getHeight();
                int myWidth = (0-mLayout_X)/2;
                int myHeight = (0-mLayout_Y)/2;
                Rect rect = new Rect(mLayout_X,mLayout_Y,myWidth,myHeight);
                startDrag(data, new DragShadowBuilder(v) {
                    @Override
                    public void onProvideShadowMetrics(Point shadowSize, Point shadowTouchPoint) {
                        shadowSize.set(v.getWidth(), v.getHeight());
                    }
                }, rect, 0);
}
이외에 onTouch 이벤트 onDragEvent 사용중입니다. ㅠㅠ
Androng (120 포인트) 님이 2014년 1월 6일 질문

1개의 답변

0 추천

https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback

 

맞는진 모르겠지만.. ItemTouchHelper.Callback에서 아래 메소드를 한번보세요..

interpolateOutOfBoundsScroll(RecyclerView recyclerView, int viewSize, int viewSizeOutOfBounds, int totalSize, long msSinceStartScroll)

 
캬옹이 (37,920 포인트) 님이 2019년 1월 14일 답변
...