タグ

ブックマーク / 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
  • frameとboundsの理解をちょっとだけ深める - Qiita

    UIViewのframeとbounds、どちらもViewのサイズや位置を決めるものですが、結構適当にframeを使っている方が多いのではないでしょうか? いろんなサイトで解説されていますが、frameは親からの座標 / boundsは自分の座標といわれても???な感じでした。 差がよくわからない、そもそもなぜ2個あるんだと。 自分もまだ完全ではないですが、コードを書いて動かして理解した範囲でまとめてみます。 とはいうものの、frameとboundsだけでは理解しづらいです。 ここに center、transform を加えるとぐっと理解しやすくなります。 それぞれの関係を図にまとめるとこんな感じです(数値は座標のイメージで正確じゃないです) 親Viewにグレーの子Viewを配置して、適当にtransformで位置・スケール・回転をずらしたイメージです。 左上のグレー枠が描画抜きで親からみた

    frameとboundsの理解をちょっとだけ深める - Qiita
  • 1