レイアウトに ViewPager を持つアクティビティがあります。
各タブに 1 つずつ、2 つのフラグメントが表示されます。
フラグメントの 1 つは、他のフラグメントをホストするように設計されてCustomerMainFragment
いfragment_customer_main
ます。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lyt_customer_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/fragment_customer_content"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
次に、これがwhich inflatesに追加CustomerSearchFragment
されます。FrameLayout
fragment_customer_search
CustomerSearchFragment
ボタンを押したときに詳細フラグメントの検索フラグメントを切り替える次のオーバーライドもあります。
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button btnSearch1 = (Button) view.findViewById(R.id.button1);
if (btnSearch1 != null) {
btnSearch1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// This is important bit
Fragment customerDetailFragment = new CustomerDetailFragment();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.addToBackStack(null);
transaction.replace(R.id.fragment_customer_content, customerDetailFragment).commit();
}
});
}
}
ボタンをクリックすると、次のエラーが表示されます。
java.lang.IllegalArgumentException: フラグメント CustomerDetailFragment{4280b0b8 #0 id=0x7f080006} の ID 0x7f080006 (com.chrisbeckyapps.sample:id/fragment_customer_content) のビューが見つかりません
私はフラグメントを初めて使用し、概念を理解していますが、これには困惑しています。最初は検索フラグメントをページャーに直接入力していましたが、それを詳細フラグメントに置き換えると、上部に表示されるだけになり、私の調査により、これがより良い解決策になりました.
検索ロジックCustomerMainFragment
を
提案?