2012-06-21 3 views
0

나는 뿔뿔이 흩 뿌려지는 경고를 받았습니다.할당 변경 콜백에서 경고 처리

내 프로젝트에서 몇 가지 ClutterBox (es)를 처리하는 여러 ClutterConstraint (s)에서 작성한 사용자 정의 레이아웃이 있습니다.

하나의 ClutterBox에는 많은 수의 ClutterTexture가 포함되어 있으며 수제 레이아웃으로 배치되어 있습니다. (수작업 레이아웃) 나는 을 사용하여 의 "할당 변경"을 알리고 그의 콜백 안에 모든 배치 로직을 작성했습니다.

런타임에 나타나는 경고는 "Clutter-WARNING **: The actor 'ClutterBox' is currently inside an allocation cycle; calling clutter_actor_queue_relayout() is not recommended"입니다.

누군가이 경고를 피하는 방법을 제안 할 수 있습니까?

답변

1

할당 변경 신호를 통해 부모를 할당하는 동안 하위 할당을 변경할 수 없습니다. 즉, allocate() 가상 함수 외부에서 부모를 할당하는 동안 하위의 크기 나 위치를 변경할 수 없습니다.

컨테이너에 대한 레이아웃 관리 정책을 구현하려면 컨테이너를 서브 클래스 화하고 해당 allocate() 가상 함수를 재정의해야합니다. 또는 ClutterLayoutManager를 구현하고 액터에 할당해야합니다.

ClutterBox는 Clutter 1.10에서 더 이상 사용되지 않습니다. 이제 ClutterActor는 전체 API를 제공하고 레이아웃 관리 정책 구현에 필요한 대리인을 지원합니다.