View.INVISIBLEとView.GONEの違い

Android アプリのレイアウトで要素を非表示にするとき,View.INVISIBLE と View.GONE にはどのような違いがあるでしょうか.

非表示にする処理

TextView exampleView = (TextView) findViewById(R.id.example_view);
exampleView.setVisibility(View.INVISIBLE);

要素を非表示にしたいときは setVisibility() で処理できるのでした.

INVISIBLE と GONE の違い

  • INVISIBLE: 不可視化する
  • GONE: 存在を消す

前者は見えなくなるだけで View に対するスペースは維持されたままですが,後者は存在そのものを消してしまうのでスペースも残りません.

CSS で言う display: hidden; か display: none; か,に感覚的に似ているような.

参考

Android : difference between invisible and gone? | Stack Overflow