【androidjava】xmlレイアウトの非表示プロパティについて

asaba 著者:asaba

【androidjava】xmlレイアウトの非表示プロパティについて

androidでは、レイアウトを非表示にしたい場合はinvisibleを使います。

これとinvisibleを組み合わせることで融通の利くUIを作ることが出来る

便利なやつなのですが、最近になってgoneプロパティの存在と

使い方を知りました。

 

どんな役割を持っているかというとまずinvisibleは、

レイアウトを見えなくするだけで実際にはそのレイアウトには

存在するのですが、goneはレイアウトそのものを消しています。

つまり消えた領域にはgoneになったレイアウトの

次のレイアウトが表示させることになります。

xmlではこのように記述します。

</pre>
<RelativeLayout
android:id="@+id/relativeLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="MissingConstraints">
<ImageView
android:id="@+id/image"
android:visibility="gone"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:layout_marginStart="80dp"
android:layout_marginEnd="80dp"
android:src="@drawable/image_icon" />
</RelativeLayout>

&nbsp;

//この後ろのレイアウトが押し出されて表示される
<pre>

今開発しているアプリはimageviewは真ん中

に置いているのですが、普段何もしない場合は表示しないようにしています。

view.invisibleを使うことでimageviewを消すことは

できるのですが、そのimageviewが見えなくなることで

スペースに不自然な空白が生まれ、アプリとしては

かなり不細工な出来になってしまいます。

ここでinvisible以外のプロパティであるgoneを指定すると

imageviewの次のレイアウトが押し込まれて隙間がなくなり

すっきりした見た目にすることができるのです。

 

ただしデカいandroidで表示させると灰色の余白ができるので

背景色を余白と一緒にするなど工夫も必要になってきます。

  • この記事いいね! (0)

著者について

asaba

asaba author

好きなもの:RPG、チョコミント 少しずつ頑張ります。