android-fragments 尝试使用按钮从一个片段移动到另一个片段

iih3973s  于 2022-11-13  发布在  Android
关注(0)|答案(1)|浏览(175)

因此,我的目标是通过a按钮使用父FrameLayout从CalculatorFragment交换到CalculatorResultsFragment。我收到错误消息:

java.lang.IllegalArgumentException: No view found for id 0x7f08020f (com.example.flexplan:id/parent_fragment) for fragment CalculatorResultsFragment{1046933} (71b49e01-2328-4454-870b-5acb04ccc3d0 id=0x7f08020f)

片段计算器片段.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"
    android:orientation="vertical"
    tools:context=".Calculator.CalculatorParentFragment">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/parent_fragment"/>
</LinearLayout>

计算器父片段.java

FragmentManager manager = getChildFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.parent_fragment, new CalculatorFragment());
transaction.commit();

计算器片段.java

submitButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        FragmentManager manager = getChildFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(R.id.parent_fragment, new CalculatorResultsFragment());
        transaction.commit();
    }
});

有谁知道我该怎么解决这个问题吗?

nx7onnlm

nx7onnlm1#

错误提示您没有片段的视图,请检查布局文件,对于每个片段,您需要有一个布局,如果没有,事务无法将您发送到那里。所有布局到位后,按照如下文档链接:

FragmentManager fragmentManager = getChildFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.setReorderingAllowed(true);

transaction.replace(R.id.parent_fragment, CalculatorResultsFragment.class, null);

transaction.commit();

相关问题