Android 如何在片段中调用片段?
所以我在片段中工作,其中有两个片段。请看下图: 显示库存列表的第一个片段名为fragment\u purchase\u item\u list,右侧为fragment\u purchase\u list 我想做的是,当我从右边片段的工具栏上单击扫描时,片段\u qrscan将替换片段\u购买\u项目\u列表。如下图所示: 有人能看看我的代码为什么不工作吗?谢谢 PurchaseListFragment.javaAndroid 如何在片段中调用片段?,android,android-fragments,Android,Android Fragments,所以我在片段中工作,其中有两个片段。请看下图: 显示库存列表的第一个片段名为fragment\u purchase\u item\u list,右侧为fragment\u purchase\u list 我想做的是,当我从右边片段的工具栏上单击扫描时,片段\u qrscan将替换片段\u购买\u项目\u列表。如下图所示: 有人能看看我的代码为什么不工作吗?谢谢 PurchaseListFragment.java <-- start of code snippet --> @O
<-- start of code snippet -->
@Override
public void onClick(View v) {
int id = v.getId();
switch (id){
case R.id.btn_paypurchasetransaction:
Fragment chargeFragment = new ChargeFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.customersales_content, chargeFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
break;
case R.id.layout_transaction_qrcode:
// Toast.makeText(getActivity(), "Scan Item", Toast.LENGTH_SHORT).show();
Fragment scanQRCodeFragment = new QRScanFragment();
FragmentManager fragmentManager1 = getFragmentManager();
FragmentTransaction fragmentTransaction1 = fragmentManager1.beginTransaction();
fragmentTransaction1.replace(R.id.inventory_fragment, scanQRCodeFragment);
fragmentTransaction1.addToBackStack(null);
fragmentTransaction1.commit();
break;
case R.id.layout_transaction_new:
Toast.makeText(getActivity(), "New Transaction", Toast.LENGTH_SHORT).show();
break;
}
}
<-- end of code snippet>
fragment_sales.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Fragments.SalesFragment"
android:orientation="horizontal"
android:id="@+id/customersales_content">
<fragment
android:id="@+id/inventory_fragment"
android:name="com.example.devcash.Fragments.PurchaseItemListFragment"
tools:layout="@layout/fragment_purchase_item_list"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3">
</fragment>
<View
style="@style/Divider"
android:layout_width="1dp"
android:layout_height="wrap_content" />
<fragment
android:id="@+id/purchaselist_fragment"
android:name="com.example.devcash.Fragments.PurchaseListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
tools:layout="@layout/fragment_purchase_list">
</fragment>
</LinearLayout>
尝试用getChildFragmentManager替换getFragmentManager谢谢您的回复。添加getChildFragmentManagerI think后,应用程序将停止,因为我已经在my fragment_sales.xml中指明了我的碎片容器的名称和布局。请用框架布局替换xmls中的碎片,然后尝试碎片替换代码是,但如果我这样做,第一个布局将不会自动显示。它将显示。在父片段的onCreateView中添加该片段