消したいけど、消せないこと。。。
消したくないけど、消えてしまったこと。。
日常生活ではとても複雑で自分で管理することはとても難しいのですが、
LinearLayoutのパーツを消すことはとても簡単です。
setVisibility(View.GONE)
詰めて消す
setVisibility(View.INVISIBLE)
消す
setVisibility(View.VISIBLE)
表示
上記の3つで、表示・非表示の管理ができます。
サンプルソース
■xmlファイル(main.xml)
■メインアクティビティ
package com.example.linear; import android.os.Bundle; import android.view.View; import android.app.Activity; import com.example.linear.R; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //GoneBtnを押したときの処理 public void onClick_GoneBtn(View v){ //GONEする findViewById(R.id.GoneBtn).setVisibility(View.GONE); } //InvisiBtnを押したときの処理 public void onClick_InvisiBtn(View v){ //INVISIBLEする findViewById(R.id.InvisiBtn).setVisibility(View.INVISIBLE); } //recoverBtnを押したときの処理 public void onClick_recoverBtn(View v){ //2つのボタンを復活!! findViewById(R.id.InvisiBtn).setVisibility(View.VISIBLE); findViewById(R.id.GoneBtn).setVisibility(View.VISIBLE); } //allBtnを押したときの処理 public void onClick_allBtn(View v){ //Linearを消すか復活させるかの判定 if (findViewById(R.id.buttonlayout).getVisibility() != View.VISIBLE){ findViewById(R.id.buttonlayout).setVisibility(View.VISIBLE); }else{ findViewById(R.id.buttonlayout).setVisibility(View.INVISIBLE); } } }■実行結果
1)初期表示
2)GONEを押すと
3)INVISIBLEを押すと
GONEにすると消えた分が詰めて表示され、
INVISIBLEにすると詰まらず消えます。
また、各パーツを囲っているLInearを消すと、
中のパーツもまとめて消えます。
どのような動きになるか、色々ボタンを
押して、試してください。
findViewByIdはxmlファイルでの各パーツのIdを指定します。
また、メインソースにあるonClick_~はxmlファイルでの各パーツのonClickから値を
取得しています。
ボタン押下時の処理の取得方法はたくさんありますが、あまり使わない実装方法です。。。。。。
0 件のコメント:
コメントを投稿