내부에 다섯 개의 뷰가있는 LinearLayout이 있는데, 이들은 1x5 그리드를 형성합니다.드래그 된 객체를 드래그의 원점에 정렬하는 방법은 무엇입니까?
이 LinearLayout이 드래그됩니다.
5 개의 뷰 각각에서 onTouchListeners를 설정하고, 드래그 한 항목 중 5 개가 드래그 된 항목을 확인하고 LinearLayout에서 motionEvent.getAction()을 호출하도록 설정하고 있습니다. 이 끌기 시작 지점으로 중심이고하지 않음으로써있는 LinearLayout 드래그되기 때문에
이 불완전하다. 드래그하는 동안
드래그가에서 유래보기 때문에 motionEvent의 시작 부분에있는 LinearLayout을 변환 할 수있는 방법이 있습니까 손가락 아래? 있는 LinearLayout
private final class MyTouchListener implements View.OnTouchListener {
//public boolean onTouch(View view, MotionEvent motionEvent) {
public boolean onTouch(View view, MotionEvent motionEvent) {
LinearLayout ship = (LinearLayout)view.getParent();
dragCellIndex = ship.indexOfChild(view);
dragCellTotal = ship.getChildCount();
view = ship;
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view, 0);
view.setVisibility(View.INVISIBLE);
return true;
} else {
return false;
}
}
}
일부 시도를 했습니까? 일부 코드를 작성 했습니까? –
나는 원래 게시물에 사용하고있는 터치 리스너를 추가했습니다. LinearLayout에 드래그 원의 왼쪽과 오른쪽, 왼쪽 setTranslationX (cell.length() * - 1) 및 오른쪽 setTranslationX (cell.length())의 셀 수를 확인했습니다. 그것은 아무것도 바뀌지 않았습니다. –