Activity
に が 1 つしか含まれておらず、Fragment
のビューが次のようFragment
に作成されているとします。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.fragment, container, false);
}
次に、フラグメントのルート ビュー ( によって返されるonCreateView
) を、囲んでいるアクティビティにアタッチする必要があります。
質問:
アクティビティとフラグメントの間のビュー階層にはいくつのレベルがありますか? つまり:
<Activity View> -> <Fragment View>
また
<Activity View> -> <Some ViewGroup> -> <Fragment View>
の私のテストでは
onCreateView
、ViewGroup container
ですnull
。どうしてこれなの?私が両方で定義した場合
activity_main.xml
:<fragment android:id="@+id/fragment_foo" />
そして(このフラグメントのルートビュー要素で
fragment_foo.xml
あると仮定します):ListView
<ListView android:id="@+id/listview_foo" />
では、フラグメントのルート ビューの ID は何
fragment_foo
ですかlistview_foo
?私のテスト結果は前者です。この結果は期待されていますか?これは、フラグメントのレイアウトのルート要素の id を設定してはならないということですか (とにかく使用されないため)?
フラグメントのビュー階層は囲んでいるアクティビティのビュー階層に接続されているため、フラグメント内のビューを見つける際に両方が機能するはずです。
getActivity().findViewById()
と
getView().findViewById()
これは正しいです?