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)。
沒有留言:
張貼留言