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