ちょっとボタンの表示・非表示を使うことがあったのでメモとして。
なお、今回ボタンはこのように定義しています。
// ボタンの定義 Button btn; btn= (Button) findViewById(R.id.button); [code] で、ボタンを非表示にする場合、setVisibility() メソッドを利用します。 [code] // ボタンを非表示にする btn.setVisibility(View.INVISIBLE); btn.setVisibility(View.GONE);
引数は、View.INVISIBLE か View.GONE のどちらかを指定します。
そして今回迷ったのが、こちらの引数でどちらを使うのか、です。
どちらも非表示には変わりないのですが、微妙に挙動が違います。
まず、View.INVISIBLE。
こちらは、単に見えなくなるだけで、ボタンの領域は確保されたままです。
CSSでいうところの、visibility:hidden の挙動と同じですね。
次に、View.GONE。
こちらは、ボタンの領域を確保せず、非表示にしたボタンのエリアを詰めて表示します。
View.INVISIBLEが「隠す」というイメージに対して、View.GONE は「削除」というイメージですね。
CSSでは、display:none の挙動に近いです。
ちなみに、今回は View.INVISIBLE を使いました。
なお、ボタンを表示する場合はこちら。
// ボタンを表示する btn.setVisibility(View.VISIBLE);
引数に View.VISIBLE を指定します。
こういう違いって、いざ使おうとするとどちらがどちらの挙動だったかをすぐ忘れてしまいます。
もしくは、引数をどう指定するかとかも忘れやすいので、今回、備忘録としてまとめてみました。
結構よく使うメソッドなので、少しでも参考になれば。