タグ

ブックマーク / qiita.com/naodroid (2)

  • onMeasureとonLayoutについて理解する - Qiita

    androidで厄介なレイアウト回り、onMeasureとonLayoutを理解し、オーバーライドするとより理想のレイアウトに近づけます。 結構挙動が難しいので、長くなってしまいますがこれらの概要です。 (※おおざっぱな流れで細かい部分は違いますが、イメージはつかめると思います) そもそもこの2つは? AndroidではView生成時や、Viewの内容が更新される(TextView#setText()等)で、 View自体の再レイアウトが必要なときに2つが呼び出されます。 以下のようなイメージです。 親ViewのonMeasureが呼び出される 親Viewが子Viewのmeasureを呼び、幅高さを計測させる (2)の情報をもとに、親Viewが自分自身の幅高さを設定する 親ViewのonLayoutが呼び出される 親Viewが子Viewのlayoutを呼び、子Viewの場所を確定させる こ

    onMeasureとonLayoutについて理解する - Qiita
  • イニシャライザが守るべき3つのルール - Qiita

    オブジェクトを初期化するイニシャライザ、init で始まるメソッドですね。 init とか initWithString とか。他言語でいうところコンストラクタ代わりです。 iOS開発している人なら、「指定イニシャライザ」 という単語は聞いたことある人多いと思いますが、これの意味と役割を理解せずに組んでいる人も多いのではないでしょうか? そしてイニシャライザではいくつか守ったほうがいいルールがあります。 3 Rules for initializers 結論から書くと、以下の3つルールをイニシャライザでは守ると効率的になります。 (1)必ず一つの指定イニシャライザを持つ(基的に複数はナシ) (2)指定イニシャライザ以外のイニシャライザは、必ず指定イニシャライザ経由で初期化する (3)親クラスの指定イニシャライザは必ずオーバーライドする 理由はこの記事で説明します。(※長いです) clas

    イニシャライザが守るべき3つのルール - Qiita
  • 1