배경 : 내 응용 프로그램에는 자식보기 위에 그림자를 그릴 때 사용하는 컨테이너 인 DropShadowFrameLayout
이 있습니다. ListView
의 상단과 하단에있는 그림자처럼 알 수 있습니다.ViewPager의 그림자 그림자
그것은이 문서를 기반으로 : 그것은 단순히 아이들의 이상 그림자 비트 맵을 그릴 수 dispatchDraw(Canvas canvas)
을 무시 http://cyrilmottier.com/2012/06/08/the-making-of-prixing-3-polishing-the-sliding-app-menu/
: http://proandroiddev.blogspot.ru/2012/01/android-design-tip-drop-shadows-on.html는
시릴 Mottier도 같은 접근 방식을 제안한다.
나는 DropShadowFrameLayout
안에 VerticalViewPager
(https://github.com/castorflex/VerticalViewPager)을 가지고 있으며,보기의 계층 구조가 이미 복잡하여 화면이 흐려지는 문제가 있습니다. 내가 뭘하려
:은 내가 ViewPager
의 dispatchDraw(Canvas canvas)
에 직접 그림자 그리기 코드를 이동하여 해당 DropShadowFrameLayout
제거하기로 결정했다. 그리고 여기서 문제는 ViewPager
은 처음에 보이는 자식에만 그림자를 그립니다. 그리고 스크롤 할 때 그림자도 함께 움직입니다. 물론 이것은 자식 뷰가 움직이는 동안 그림자가 있어야하기 때문에 예상 한 동작이 아닙니다.
이 방법은 ListView
에서 잘 작동합니다.
질문 :이 방법을 ViewPager
에 어떻게 적용합니까? 아니면 성능면에서 동등한 다른 방법이 있습니까? 또는 적어도, ViewPager
은 왜 이런 식으로 행동합니까?
그래서 ViewPager.dispatchDraw는 한 번만 호출됩니다. ??? – pskink
아니요, 여러 번 호출되었지만 그림자가 같은 위치에 그려져 있습니다. (어린이가 아닌 그려진 것처럼) –
getScrolllX/Y로 캔버스 번역 – pskink