LoginSignup
7
5

More than 5 years have passed since last update.

AndroidでCustomViewGroupを作るときMarginLayoutParamsのClassCastExceptionで落ちる

Last updated at Posted at 2016-02-06

まず解決策

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のサブクラスの書き方など詳しく書きます。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5