Monday, January 09, 2012

Fragmentを表示したり消したりする

画面方向の回転のタイミングで、Fragmentを表示したり消したりします。
方法は、回転のタイミングで呼ばれるActivityのonResumeのオーバーライドです。

  1. @Override  
  2. public void onResume() {  
  3.  super.onResume();  
  4.   
  5.  //画面のサイズを取得  
  6.  WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  
  7.  Display disp = wm.getDefaultDisplay();  
  8.  int width = disp.getWidth();  
  9.   
  10.  //表示したり消したりするためのマネージャーを取得。  
  11.  FragmentManager fm = getFragmentManager();  
  12.  FragmentTransaction ft = fm.beginTransaction();  
  13.   
  14.  //表示したり消したりするフラグメントを取得。  
  15.  Fragment mFragment1 = fm.findFragmentById(R.id.number_list);  
  16.   
  17.  //画面の幅が900pxより小さかったら、消します。それ以外なら表示します。  
  18.  if (mFragment1 != null) {  
  19.   if (width < 900) {  
  20.    ft.hide(mFragment1);  
  21.   } else  
  22.    ft.show(mFragment1);  
  23.  }  
  24.  ft.commit();  
  25. }  
Galaxy Nexusで実行した結果ですが、横向きの時は画面幅が900px超えるので「1,2,3・・」と表示されるListFragmentが表示されます。
縦向きの時は画面幅は900pxを下回るのでこのListViewは表示されません。



No comments:

Post a Comment