レイアウト(2)-visibility ウィジェットの表示,非表示

visibilityをレイアウトとして扱って良いかは疑問ではあるが。


 

visibility属性を使って、ウィジェットの表示,非表示を指定する。

visibilityには、以下の3つの状態がある。

xml属性 動作 表示領域 定数
visible 表示 確保される View.VISIBLE
invisible 非表示 確保される View.INVISIBLE
gone 非表示 確保されない View.GONE

invisibleとgoneはどちらも非表示であるが、goneの場合はウィジェットの表示領域が確保されない点が異なる。

コードを使ってvisibilityの値を指定する場合には、上記、表の定数列のViewクラスで定義されている定数を使う事になる。

 

以下は、3つのvisibility属性をTextViewに指定し、 その後にButtonを配置したxmlレイアウトファイルの例である。

リスト1-レイアウトファイル(main.xml)

このプログラムを実行すると、以下のような画面が表示される。

 

 

この画面をみると、visibleと表示されているTextViewの他にもう一個分のTextViewの領域が確保されているのがわかる。

Activityに以下のプログラムを記述して、リスト1のそれぞれのTextViewの幅と高さがどのように確保されているかを確認してみる。

リスト2(VisibleSample2Activity.java)

ウィジェットのvisibilityの値はView#getVisibilityメソッド(25行目)で取得できる。

このプログラムを実行してボタンを押下すると、以下のようにLogにTextViewの幅と高さが表示される。

 

 

GONEの場合には、幅,高さともに0になっていることが確認できる。

 

setVisibilityメソッドを使って、ウィジェットのvisibilityを変更する事ができる。

以下は、ボタンを押下するたびにTextViewに対して、3つのvisibility属性の値に順番に変更するプログラムの例である。

リスト3(VisibleSample1Activity.java)

 

ページのトップへ戻る