Android の UI レイアウト作成で、コンポーネントの表示・非表示についての visibility プロパティについて調べてみました。

visibility はリファレンスによると、visible / invisible / gone の3種類があるとのこと。

自分は VB6 とか C# 出の人間なので、「なんで2種類(Boolean)じゃないんだろう」と思っていましたので、ためしにやってみました。

レイアウトにボタン(じゃなくても良いけど)を2つ貼り、一つ(A とします)を可変幅に、もう一つ(B とします)を固定幅にしました。
ボタンBは常に固定幅で画面右にあって、ボタンAは残った領域に fill するイメージです。
(※ボタンA の layout_weight を B より大きな値にセットするのがミソです)

この状態で、ボタン B の visibility を変えてみて、どんな変化が起こるか確認してみました。

それが↓これ。

なるほど。
invisible は、そこに存在するけど見えていない。ので空白の領域ができる。
gone は、存在自体が無くなる。ので ボタンA がいっぱいまで表示される。
VB6 や C# に例えていうなら、Visible の true が “visible” で、false は “gone” なんですね、納得。

ちなみに “gone” を英和辞典で調べると、「消失した、いなくなった」 という意味もあるそうで、なるほど。

Android
Java

published

Ads

Read more!

amay077

Microsoft MVP(Xamarin). フルリモートワーカー. Geospatial Mobile app developer. Love C#.

amay077 amay077