2012年03月13日

visibilityでViewの表示・非表示を設定


visibility属性ではウィジェットの表示・非表示を設定することができます
visibilityはvisible / invisible / goneの3種類があります
visible:表示/領域は確保される
invisible:非表示/領域は確保される
gone:非表示/領域は確保されない
といった形になります
visibilityはウィジェットのプロパティの設定で変更します
プロパティーの設定方法

例にButton1とButton2でvisibilityを変化させてみたいと思います
まずはどちらもvisibleな状態
device50.png
ちなみにlayout_weightで3:1に幅を設定しています
layout_weight属性

次にinvisibleに設定してみます
device51.png
そこに存在するけど見えていないので空白の領域ができます

最後にgoneに設定してみます
device52.png
goneは全く領域自体がなくなるのでButton1がいっぱいまで表示さます

参考にxmlソースを載せておきます
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >

    <LinearLayout
    	android:id="@+id/linearLayout1"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content" >

        <Button
        	android:id="@+id/button1"
        	android:layout_width="0px"
        	android:layout_height="wrap_content"
        	android:text="Button1" android:layout_weight="3" android:visibility="visible"/>

        <Button
        	android:id="@+id/button2"
        	android:layout_width="0px"
        	android:layout_height="wrap_content"
        	android:text="Button2" android:layout_weight="1" android:visibility="gone"/>

    </LinearLayout>

</LinearLayout>

スポンサードリンク

posted by kenken at 18:46 | Comment(0) | TrackBack(0) | レイアウト 表示 | このブログの読者になる | 更新情報をチェックする

weightを動的に変更する


weightSumとlayout_weightを今回はjavaで動的に設定してみたいと思います
weightSumとlayout_weight
前回と同様に親weightSumを10、子のButtonを5と3に設定しました
package blog.test;
  
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
 
  
public class TestActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        //親LinearLayoutを作成
        LinearLayout layout0 = new LinearLayout(this);
        layout0.setOrientation(LinearLayout.VERTICAL);
        LayoutParams p0 = new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT);
        //setWeightSumを10に設定
        layout0.setWeightSum(10);
        setContentView(layout0, p0);

        //ボタンを追加
        Button button1 = new Button(this);
        button1.setHeight(0);
        button1.setText("Button1");
        LinearLayout.LayoutParams lp1=new 
        		LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT);
        //weightを5に設定
        lp1.weight=5;
        layout0.addView(button1,lp1);
         
        Button button2 = new Button(this);
        button2.setHeight(0);
        button2.setText("Button2");
        LinearLayout.LayoutParams lp2=new 
        		LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT);
        //weightを3に設定
        lp2.weight=3;
        layout0.addView(button2,lp2);
         

    }
 
}
注意すべき点はButtonのLayoutParams
LinearLayout.LayoutParamsに変更されている点です
LayoutParamsだと.weightでの設定ができません
device49.png
スポンサードリンク

posted by kenken at 15:02 | Comment(0) | TrackBack(0) | レイアウト カスタマイズ | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。