Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 中級開發 >> Android Fragment使用詳解

Android Fragment使用詳解

編輯:中級開發

有關android Fragment相關內容,昨天我們在Fragment對比Activity - android碎片介紹一文簡單講了下Fragment的作用以及它的生命周期,今天android123主要講些Fragment的管理控制、性能優化以及和Activity的傳輸相關內容。

  一、 管理Fragment

   管理Fragment在你的Activity你需要使用一個名為FragmentManager的類,通過調用getFragmentManager()方法來實例化該管理類在你的Activity種。 FragmentManager 類一些主要的方法有通過findFragmentById()來獲取一個Activity中有關Fragment布局。當然還有類似findFragmentByTag()方法,以及唐Fragment中出棧的popBackStack()同時可以注冊addOnBackStackChangedListener()管理.具體的可以在android.app.FragmentManager類中了解

 二、 優化Fragment事物處理

  一個很好的特性在添加,刪除,替換fragment在Activity時可以使用FragmentTransaction類來提高批量處理的效率,這點和SQLite的數據庫更新原理類似。

 FragmentManager fragmentManager = getFragmentManager();  //實例化fragmentmanager類
 FragmentTransaction transaction = fragmentManager.beginTransaction(); //通過begintransaction方法獲取一個事物處理實例。

  在這期間可以使用 add(), remove(), 以及  replace(). 最終需要改變時執行 commit()即可,接下來我們寫代碼

  transaction.replace(R.id.fragment_container, newFragment); 
  transaction.addToBackStack(null); 
  transaction.commit();

  三、Fragment和Activity互相通訊

  通常Fragment中我們放入平時標准的控件或自定義的控件,基本上和Activity一樣,但是如何Fragment中的VIEw布局也是放到Activity中的,這裡android開發網提示大家有兩種方法來實現

  View listView = getActivity().findVIEwById(R.id.cwj); //通過getActivity方法可以獲取一個Activity中的fragment,這裡的cwj是一個fragment,在activity中的布局如下:

  <?XML version="1.0" encoding="utf-8"?>
<LinearLayout XMLns:android="http://schemas.android.com/apk/res/android"
    android:orIEntation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment android:name="com.android123.cwj.ArticleListFragment"
            android:id="@+id/cwj"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
    <fragment android:name="com.android123.cwj.ArticleReaderFragment"
            android:id="@+id/smart"
            android:layout_weight="2"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</LinearLayout>

  當然還有一種通過getFragmentManager方法獲取實例,ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.cwj);

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved