まず解決策
CustomViewGroup.java
@Override
public LayoutParams generateLayoutParams(AttributeSet attrs) {
return new MarginLayoutParams(getContext(), attrs);
}
@Override
protected LayoutParams generateDefaultLayoutParams() {
return new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
これを書き忘れると落ちる。
てかonMeasuer()とonLayout()の書き方ようわからんわって人は
これが超参考になります。
http://lucasr.org/2014/05/12/custom-layouts-on-android/
あとAndroid界の女帝yanzamさんのこれも、画面回転時に保持したい変数をどう扱えば良いか書いてくれてるんで参考になります。
http://www.slideshare.net/yanzm/droid-kaigi2015-yanzm
僕はこれ読んでCustomView作らねばと思い、標題の件でハマった次第です。
ググると、LinearLayoutのLayoutParamsとRelativeLayoutのLayoutParamsが全然別クラスでClassCastExceptionで落ちるよ〜みたいなのばかり出てきて、肝心のこの情報になかなか行き着けなくて苦労しました。
暇できたらViewGroupのサブクラスの書き方など詳しく書きます。