返回列表 發帖
  1. package com.tqc.gdd01;

  2. import android.app.Activity;
  3. import android.app.FragmentTransaction;
  4. import android.os.Bundle;

  5. public class GDD01 extends Activity {
  6.   public static boolean bIfDebug = false;
  7.   public static String TAG = "HIPPO_DEBUG";
  8.   boolean detailPage = false;   //detailPage 是否配置

  9.   @Override
  10.   protected void onCreate(Bundle savedInstanceState) {
  11.     super.onCreate(savedInstanceState);
  12.     setContentView(R.layout.main);

  13.     if (savedInstanceState == null) {   //初次建立 listFragment 元件
  14.       FragmentTransaction ft = getFragmentManager().beginTransaction();
  15.       ListFragment listFragment = new ListFragment();
  16.       ft.add(R.id.displayList, listFragment, "List_Fragment");
  17.       ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);  //設定轉場動畫
  18.       ft.commit();   //交託
  19.     }

  20.     //如果 displaydetail 這個元件存在,代表此時為橫向擺放 (橫向擺放時會自動抓取資料夾 layout-land 下的 main.xml)
  21.     if (findViewById(R.id.displayDetail) != null) {
  22.       // Landscape
  23.       detailPage = true;
  24.       getFragmentManager().popBackStack();

  25.       // 主程式setContentView()之後,判斷橫式UI中ID為displayDetail的FrameLayout是否存在,置換不同的Fragment於其中
  26.       DetailFragment detailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.displayDetail);
  27.       if (detailFragment == null) {   //初次建立 detailFragment 元件
  28.         // TO DO
  29.         detailFragment = new DetailFragment();
  30.         FragmentTransaction ft = getFragmentManager().beginTransaction();
  31.         ft.add(R.id.displayDetail, detailFragment, null);
  32.         ft.commit();
  33.       }
  34.     }
  35.   }

  36.   public void onButtonClicked(String strText) {
  37.     //  依據直式或橫式按鈕事件也不同,請為直式切換頁面Fragment,而橫式為置換右方FrameLayout。
  38.     if (detailPage) {
  39.       // Landscape
  40.       //TO DO
  41.       DetailFragment detailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.displayDetail);
  42.       detailFragment.updateDavidContent(strText);
  43.     } else {
  44.       //TO DO
  45.       DetailFragment detailFragment=new DetailFragment();
  46.       detailFragment.updateDavidContent(strText);
  47.       FragmentTransaction ft=getFragmentManager().beginTransaction();
  48.       ft.addToBackStack(null);  //加到後方堆疊區,使按 "返回鍵" 時不會整個畫面小
  49.       ft.replace(R.id.displayList, detailFragment, null);
  50.       //replace() 的功能等同於先呼叫 remove() 移除目前的 Fragment,再呼叫 add() 加入另一個 Fragment
  51.       ft.commit();
  52.     }
  53.   }
  54. }
複製代碼

TOP

返回列表