2011-05-11 4 views
0

onDraw()에서 사용자 정의 도면을 작성하는 View를 확장하는 클래스 (현재는 MyWidget이라고 부름)가 있습니다. MyWidget은 ListView에 MyWidget을 추가하거나 TabView 내에서 ScrollView를 추가하는 경우를 제외하고 대부분의 상황에서 정상적으로 작동합니다. 이러한 구성 중 하나에서 스크롤이 때때로 MyWidget의 인스턴스 중 하나의 내용에 대한 부분 이미지로 View의 제목 영역을 덮어 쓰는 것을 지속적으로 관찰합니다. ListView를 사용할 때 이상한 제목의 작업이 손상되었습니다.

나는이 그렇게 여기에 문제의 정말 혼란 설명입니다 부패의 스크린 샷 알고 :

screen corruption

어떤 아이디어?!

추가 : 내가 사용하는 논리 클리핑 :

try { 
     canvas.save(Canvas.ALL_SAVE_FLAG); 
     // do some clipping here 
    } finally { 
     canvas.restore(); 
} 

답변

2

그것은 당신의보기의 사용자 정의 드로잉 코드처럼 보이는 클립 RECT와 트릭을하고있다 그리고 당신이 제대로 캔버스 상태를 복원/저장되지 않습니다.

+0

흠, 클립 오류를 찾는 데 어려움을 겪고 있습니다. 필자는 코드에서 클립핑 할 때 어디에서나 사용할 수있는 기본 클리핑 논리를 추가했습니다. 어떤 아이디어? – Nick

+0

문제는 Region.Op.REPLACE를 사용하여 발생했을 수 있습니다. 내 생각 엔 ListView가 공용 클립을 사용하여 위쪽 영역을 마스킹하고 Clipbers를 바꾸라는 것입니다. 어쨌든 INTERSECT로 전환 할 수 있었고 모든 것이 괜찮은 것 같습니다. 문제가 실제로 사라 졌음을 확인한 후 해결책을 수락 할 것입니다. 감사! – Nick

+0

그건 정확히 말하자면, REPLACE를 사용한다면 REPLACE를하기 전에 정확하게 클립을 다시 놓아야합니다. –

관련 문제