浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Android】setVisibilityを使ってボタンを表示・非表示にする方法

ちょっとボタンの表示・非表示を使うことがあったのでメモとして。

なお、今回ボタンはこのように定義しています。

// ボタンの定義
Button btn;
btn= (Button) findViewById(R.id.button);


で、ボタンを非表示にする場合、setVisibility() メソッドを利用します。

// ボタンを非表示にする
btn.setVisibility(View.INVISIBLE);
btn.setVisibility(View.GONE);

引数は、View.INVISIBLEView.GONE のどちらかを指定します。

 

そして今回迷ったのが、こちらの引数でどちらを使うのか、です。
どちらも非表示には変わりないのですが、微妙に挙動が違います。

まず、View.INVISIBLE
こちらは、単に見えなくなるだけで、ボタンの領域は確保されたままです。
CSSでいうところの、visibility:hidden の挙動と同じですね。

次に、View.GONE
こちらは、ボタンの領域を確保せず、非表示にしたボタンのエリアを詰めて表示します。
View.INVISIBLEが「隠す」というイメージに対して、View.GONE は「削除」というイメージですね。
CSSでは、display:none の挙動に近いです。

ちなみに、今回は View.INVISIBLE を使いました。

 

なお、ボタンを表示する場合はこちら。

// ボタンを表示する
btn.setVisibility(View.VISIBLE);

引数に View.VISIBLE を指定します。

 

こういう違いって、いざ使おうとするとどちらがどちらの挙動だったかをすぐ忘れてしまいます。
もしくは、引数をどう指定するかとかも忘れやすいので、今回、備忘録としてまとめてみました。
結構よく使うメソッドなので、少しでも参考になれば。

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