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()これは正しいです?