アクティビティのレイアウト ファイル内にフラグメントを作成しました。例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<fragment android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"
android:id="@+id/article_fragment"
android:name="com.user.domain.ArticleFragment"/>
</LinearLayout>
ArticleFragment::onCreateView
関数でビューをインフレートします。
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
return inflater.inflate(R.layout.article_view, container, false);
}
ariticle_view レイアウト xml は次のようになります。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/article"
android:textSize="18sp"
android:padding="16dp"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</TextView>
ここに問題があります:R.id.article_fragment
添付後にビューの id ( ) ではなく
フラグメントの id ( ) を介してのみビューを見つけることができR.id.article
、ビュー インスタンスの id もフラグメントの id に変更されたのはなぜですか。
奇妙な振る舞いを説明できる人はいますか?
フラグメント API のドキュメントには、次のような説明があります。
システムは、フラグメントによって返されたビューを <fragment> 要素の代わりに直接挿入します。
それがこの問題の理由ですか?