2021年2月6日土曜日

ViewのVisibility(表示)の違い

AndroidのViewの表示状態(Visibility)は「VISIBLE, INVISIBLE, GONE」の三種類ある。
VISIBLEはわかりやすいが、INVISIBLE, GONEは共に非表示を意味し、その違いがわかりにくいのでまとめておく。


仕様からの確認

Viewクラスに定数が定義されているので仕様を見ると
  • VISIBLE
  • ⇒ 訳:このビューが表示される。
  • INVISIBLE
  • ⇒ 訳:このビューは表示されないが、レイアウトのためにスペースを占有する。
  • GONE
  • ⇒ 訳:このビューは非表示であり、レイアウトのためにスペースを取らない。

つまり、INVISIBLE、GONEの違いは、レイアウトに空間を取るかどうかということ。
具体的に動作を確認していく。


実動作からの確認

TextViewを3つ横並びに関連させて配置して、ボタンで真ん中のTextViewのVisibilityを変化させるプログラムを組んで確認。

Viewの位置確認を明確にするため、開発者向けオプションで「レイアウトの境界を表示」をONにしておく。

VISIBLEINVISIBLEGONE
通常に表示
デフォルトはコレ
存在はするが見えない状態
画面全体のレイアウト位置計算で、存在するとして計算されている。
存在しないから見えない状態
画面全体のレイアウト位置計算で、存在しないとして計算されている。
VISIBLEとINVISIBLEは他のTextViewの位置が変わっていないが、
GONEは関連してるTextView達の位置がちょっと変わっていることがわかる。
GONEのViewがいないモノとして計算されていることがわかる。

一応、このプログラムのコードを載せて終わりとする。

0 件のコメント:

コメントを投稿