星期一, 11月 07, 2011

Fragment (四)

Android應用程式學習筆記

Adding a user interface

Fragment通常做為activity的使用者介面的一部份,且貢獻fragment自己的布局給activity。

要提供布局給fragment,你必須實現onCreateView()方法,當該是fragment繪製它的布局的時候,系統呼叫onCreateView()方法。此方法必須回傳一個View物件,該View物件為fragment布局的根節點。

如果你的fragment是ListFragment的子類,預設從onCreateView()回傳為一個ListView。

從onCreateView()回傳一個布局,你可以透過XML布局資源擴張布局,onCreateView()提供了LayoutInflater物件來幫助你擴張布局。

舉例,以下是一個Fragment的子類,從example_fragment.xml文件取得一個布局。


public static class ExampleFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.example_fragment, container, false);
    }
}

傳入onCreateView()的參數container是parent ViewGroup(來自activity的布局),你的fragment的布局將被放入ViewGroup中。參數savedInstanceState是一個Bundle物件,如果前一個fragment恢復,提供前一個fragment相關的數據。

inflate()方法有三個參數:
  • 你想擴張的布局的ID。
  • ViewGroup成為擴張布局的parent。
  • 布林值是要表示擴張的布局是否要在擴張時依附在ViewGroup上(在此例中,布林值為fales是因為系統正準備將擴張的布局插入container中-傳入true將在布局最後建立重複的view group)。

沒有留言:

張貼留言