編輯:關於Android編程
你可以把fragment看成是activity的模塊化部分,它擁有自己的生命周期,接受它自己的輸入事件,你可以在activity運行時添加或者刪除它(有點像是一個“子activity”,你可以在不同的activity中重用它)。本課將向你展示如何使用Support Libaray繼承 Fragment
類來讓你的應用能夠兼容正在運行Android 1.6的設備。
提示: 如果你決定你的應用需求的最低API級別是11或者更高,那麼你不需要使用Support Library,你可以直接使用包含Fragment類的平台相關的APIs。本課主要重點是使用Support Library的APIs,這和已經包含了Fragment類的平台版本的區別是使用了一個指定的包簽名以及一些稍微不同的API名稱。
在你開始這堂課之前,你必須要設置好你的項目,讓他使用Support Library。如果你之前沒有使用過Support Library,跟著Support Library Setup 文檔來設置你的項目使用v4庫。你也可以使用v7 appcompat 庫讓你的應用activity能夠使用action bar,它能夠兼容到Android 2.1 (API level 7) 並且同樣包含Fragment
APIs。
要創建一個Fragment,首先繼承Fragment
類,然後覆蓋主要的生命周期方法來插入了你的應用邏輯,類似你在Activity
類中所做的。
創建一個Fragment
與activity的一個不同點是,你必須使用onCreateView()
回調方法來定義布局。事實上,你只需要覆蓋這一個回調方法就能夠讓這個fragment工作。下面是一個簡單的fragment指定布局的例子:
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.ViewGroup; public class ArticleFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.article_view, container, false); } }
就像是一個activity,fragment需要實現其他的回調方法,這樣就能夠允許你在它在actvity中被添加或移除時管理它的狀態,就像是activity切換時它的生命周期狀態。例如,當activity的onPause()
方法被調用,所有它內部的fragment都會收到onPause()
方法的回調。
更多關於fragment生命周期以及回調方法的信息,請查看Fragments 開發向導。
由於fragment是可重用的,模塊化UI組件,它的每個實例都必須和一個父FragmentActivity
關聯。你可以通過在你的activity的XML布局文件中定義fragment來獲取這個關聯。
提示: FragmentActivity
是在Support Library中提供的特殊的activity,用於處理在低於API級別為11的系統上使用fragment。如果你支持的最低系統版本的API級別是11或者更高,那麼你可以直接使用普通的Activity
。
下面是一個在大屏設備布局上添加了兩個fragment的例子。
貼士: 更多關於為不同屏幕尺寸創建布局的信息,請查看支持不同的屏幕尺寸。
然後再activity中應用這個布局。
import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.news_articles); } }
如果你使用的是v7 appcompat library,你的activity中應該要使用ActionBarActivity
,它是FragmentActivity
的子類(更多信息,請查看Android學習路線(七)設置Action Bar)。
提示: 當你在activity的XML布局文件中添加一個fragment時,你不能再運行時移除這個fragment。如果你希望在用戶交互中隱藏於現實你的fragment,你就必須在activity第一次啟動時將fragment添加到activity中,在下堂課中會講到。
Android提供了強大的事件處理機制,主要包括兩大類:1,基於監聽的事件處理機制:主要做法是為Android界面組件綁定特定的事件監聽器2,基於回調的事件處理機制:主要
ProgressBar進度條,分為旋轉進度條和水平進度條,進度條的樣式根據需要自定義,之前一直不明白進度條如何在實際項目中使用,網上演示進度條的案例大多都是通過Butto
(一)概述好的,我們在前三節中對Android中的Activity進行了研究學習,相信大家獲益良多吧! 本節開始我們繼續來學習Android中的第二個組件:Service
如果直接在TableVIewController上貼Button的話會導致這個會隨之滾動,下面解決在TableView上實現位置固定懸浮按鈕的兩種方法: 1.在view