android Fragment用法

來源:互聯網
上載者:User

標籤:and   rem   rdf   固定   擷取   定義   原子性   index   異常   

Fragment常用的三個類:
android.app.Fragment 主要用於定義Fragment
android.app.FragmentManager 主要用於在Activity中操作Fragment
android.app.FragmentTransaction 保證一些列Fragment操作的原子性

 

擷取FragmentManage的方式:  

  getFragmentManager()
  getSupportFragmentManager //v4中FragmentActivity

 

主要的操作都是FragmentTransaction的方法

  FragmentTransaction transaction = fm.benginTransatcion();//開啟一個事務

  transaction.add() //往Activity中添加一個Fragment

  transaction.remove() //從Activity中移除一個Fragment,如果被移除的Fragment沒有添加到回退棧(回退棧後面會詳細說),這個Fragment執行個體將會被銷毀。

  transaction.replace()//使用另一個Fragment替換當前的,實際上就是remove()然後add()的合體~

  transaction.hide() //當你的fragment數量固定很少時隱藏當前的Fragment,僅僅是設為不可見,並不會銷毀,多的時候可能出現OOM異常,

  transaction.show()//顯示之前隱藏的Fragment

  detach()會將view從UI中移除,和remove()不同,此時fragment的狀態依然由FragmentManager維護。

  attach()重建view視圖,附加到UI上並顯示。

  transatcion.commit()//提交一個事務

  transatcion.commitAllowingStateLoss() //提交一個事務,和commit()不同的是,這個允許狀態值丟失

 

樣本:

 FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.common_index_activity_rl_fragmentlayout, fragment);


 rewardFragment = (RewardFragment) fragmentManager.findFragmentByTag("reward");
if (rewardFragment == null) {
rewardFragment = new RewardFragment();
fragmentTransaction.add(R.id.common_index_activity_ll_reward, rewardFragment, "reward"); //第三個參數設定標籤
fragmentTransaction.hide(rewardFragment);
}
 fragmentTransaction.commitAllowingStateLoss();



 

android Fragment用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.