0

取り除くことができないクラッター警告があります。

私のプロジェクトでは、いくつかのClutterBoxを処理するいくつかのClutterConstraintによって構築されたカスタムレイアウトを使用しています。

これらの1つのClutterBoxには、手作りのレイアウトで配置された多くのClutterTextureが含まれています。それ(手作りのレイアウト)を取得するために、私は「割り当て変更」g_signal_connect通知をフックするために使用し、彼のコールバック内にすべての配置ロジックを記述しました。

実行時に表示される警告はです"Clutter-WARNING **: The actor 'ClutterBox' is currently inside an allocation cycle; calling clutter_actor_queue_relayout() is not recommended"

誰かがこの警告を回避する方法を私に提案できますか?

4

1 に答える 1

1

you cannot change the allocation of a child during the allocation of its parent through the allocation-changed signal - i.e. you cannot change size or position of a child during the allocation of the parent outside of the allocate() virtual function.

if you want to implement a layout management policy for a container, you have to subclass the container and override its allocate() virtual function; alternatively, you should implement a ClutterLayoutManager, and assign it to the actor.

ClutterBox has also been deprecated in Clutter 1.10: ClutterActor now provides the entire API and support for delegates necessary for implementing layout management policies.

于 2012-06-21T13:43:32.380 に答える