Как назвать фрагмент внутри фрагмента? - PullRequest
0 голосов
/ 01 июля 2019

Так что я работаю во Фрагментах, в которых есть 2 Фрагмента.взгляните на изображение ниже:

Первый фрагмент, который показывает список инвентаря, называется frag_purchase_item_list , а справа - frag_purchase_list

.

enter image description here

То, что я хочу сделать, это когда я нажал SCAN на панели инструментов на правом фрагменте, фрагмент_qrscan будетзаменить фрагмент_покупки_сайт_лист .Как это изображение ниже:

enter image description here

Может кто-нибудь, пожалуйста, посмотрите и проверьте, почему мой код не работает?Спасибо!

PurchaseListFragment.java

<-- 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>

фрагмент_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>

1 Ответ

1 голос
/ 01 июля 2019

Попробуйте заменить getFragmentManager() на getChildFragmentManager()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...