ViewGroupの派生クラスをADTのレイアウトエディタで開けない
表題通りだが、カスタムなビューコンテナとしてViewGroupの派生クラスを作って配置するとADTのレイアウトエディタで開こうとすると、ViewGroupの派生クラスとしては認識してくれずに例外を吐く。
java.lang.ClassCastException: android.view.View cannot be cast to android.view.ViewGroup at android.view.LayoutInflater.rInflate(LayoutInflater.java:619) at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) at android.view.LayoutInflater.inflate(LayoutInflater.java:407) at android.view.LayoutInflater.inflate(LayoutInflater.java:296) at com.android.layoutlib.bridge.Bridge.computeLayout(Bridge.java:397) at com.android.ide.eclipse.adt.internal.editors.layout.gle1.GraphicalLayoutEditor.computeLayout(Unknown Source) at com.android.ide.eclipse.adt.internal.editors.layout.gle1.GraphicalLayoutEditor.recomputeLayout(Unknown Source) at com.android.ide.eclipse.adt.internal.editors.layout.gle1.GraphicalLayoutEditor.activated(Unknown Source) at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(Unknown Source) at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
当然レイアウトエディタで状態を確認することもできない。
XML上でクラス名をFrameLayoutやLinearLayout等、androidから"見える"クラス名にすると問題が無い。
恐らくバグだろうな。(クラスの階層には問題は無いのでインフレート時のクラスローダ周りだろう)