0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WidthとHeight実は取得方法が二種類ある話

Posted at

初めに

今回はAndroidViewを実装する際に必須となるWidthHeightに関することを記事にしていこうと思います。

本文

Viewを作るのに必須なWidthHeight、xml上ではただ指定するだけですが、大きさが変動する時などにはコード上で取得をしたりしないといけません。
コード上で

get
view.width
view.heght

で取得をしようとした際に候補に下記のようなものが出てくると思います。

measured
view.measuredWidth
view.measuredHeight

実はこれも値を取得できます。
では何が違うのかを説明していこうと思います。
measuredの方はOnMeasured時点での子Viewを測定したサイズになります。
getの方はOnLayout時、つまり描画されるタイミングで確定した子Viewのサイズになります。
そのため、measuredgetには値のズレが発生することが十分にあり得ます。
measuredを使うときは上記を理解した上でonLayout時にどうしても使いたい時か描画前のサイズをとりたい時のみ使うのを強くお勧めします

最後に

以前、Widthで値が取れない時にmeasuredWidthで値が取れたので気になって調べたことを記事にしました。
使われる場面は限定されますし、あまり使うのをお勧めはできませんが、覚えておいて損はないと思い備忘録程度に書かせていただきました。
何かのお役に立てれば幸いです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?