ObjectAnimator.ofFloat (...)를 사용하여 화면의 오른쪽 위 모서리로 뷰를 이동하려고합니다. 그러나 예상 한 결과를 얻지 못하고 있습니다. ViewTreeListener 등을 사용하여 미리 뷰의 좌표를 가져오고 있으며 전체 폭의 끝에서 오프셋 할 필요가있는 x 값을 이미 알고 있습니다. 나는 어느 방향 으로든 내가 원하는 곳으로 이동할 수 없다. 관련 코드 :ObjectAnimator의 translationX/Y 값을 결정합니다. 보기를 정확한 화면 위치로 이동하는 방법?
시작 좌표 얻기; 뷰가 현재 여기서 놀랍게도
int[] userCoords = new int[]{0,0};
userControlLayout.getLocationInWindow(userCoords);
//also tried getLocationInScreen(userCoords); same result
userUpLeft = userCoords[0];
userUpTop = userCoords[1];
, 나는 (화면 좌표이며, 부모를 기준으로하지 않음) userUpLeft 내가 userControlLayout.getLeft()
를 호출 할 때 나는 그들을 나의 이해에 따라 다른 것으로 기대할와 같은 값을 얻을 문서의 어쨌든 ...
는 ObjectAnimators를 구축 :
//testXTranslate is a magic number of 390 that works; arrived at by trial. no idea why that
// value puts the view where I want it; can't find any correlation between the dimension
// and measurements I've got
ObjectAnimator translateX = ObjectAnimator.ofFloat(userControlLayout, "translationX",
testXTranslate);
//again, using another magic number of -410f puts me at the Y I want, but again, no idea //why; currently trying the two argument call, which I understand is from...to
//if userUpTop was derived using screen coordinates, then isn't it logical to assume that -//userUpTop would result in moving to Y 0, which is what I want? Doesn't happen
ObjectAnimator translateY = ObjectAnimator.ofFloat(userControlLayout, "translationY",
userUpTop, -(userUpTop));
나의 이해는 하나의 인수를 호출하면/이동을 번역 할 좌표 끝을 지정하는 것과 같습니다, 두 인수 버전에서 시작된다는 점이다 ...에서 끝나는, 또는에서 ... 나는 둘 다로 어지럽 혔고 거기에 갈 수 없습니다.
분명히, 나는 정확히 무엇이 정확한지 알아 내려고 아주 근본적인 지식을 놓치고 있습니다. 어떤 조언을 많이 주셨습니다. 감사.
감사합니다. @matiash. userControlLayout.getTop()은 getLocationInWindow와 같은 값을 반환합니다. 그것은 다르지 않다. 토론을 위해 Y를 사용하여, 그것을 0으로 옮기고 싶습니다. 맨 위까지 (액션 바 없음). 내가 0 - userControlLayout.getTop()을 사용하면, 그것은 단지 위로 움직일 수 있습니다. 내가 옮기고 싶은 생각은 단편적이며 3 명의 부모가 있습니다. 모두 너비/높이가 부모를 채우기 위해 설정 됨 ... (계속) – wkhatch
... (계속) 내가 언급 한 하드 코딩 된 값을 사용하여 원하는 위치로 이동할 수 있습니다 (이는 부모의 바깥으로 이동할 수 있음을 암시합니다).),하지만 내가 액세스 할 수있는 좌표와 측정에 대한 계산을 사용하지는 않습니다. 더 많은 정보를 얻기 위해 부모 레이아웃을 조사해야합니까? 그렇다면 무엇을해야합니까? 답장을 보내 주셔서 감사합니다 – wkhatch
질문에 대한 답변을 얻었습니까? 같은 오해가 있기 때문에 묻기 (( – konunger