【问题标题】:Fragment transaction add/replace not working from within a fragment片段事务添加/替换在片段内不起作用
【发布时间】:2020-10-30 04:45:46
【问题描述】:

这几天我一直在为这个问题头疼。似乎没有任何效果。

以下是片段所在的代码。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:theme="@style/Theme.Breathe"
    tools:context=".MainActivity">

    <fragment
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:id="@+id/mainFrag"
        android:tag="fragment"
        class="com.sneaky.example.HomeFrag"/>

</FrameLayout>

以下是第一个事务发生的 mainactivity 中的代码。以下代码按预期执行和运行。

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
    Fragment fragment = new HomeFrag();
    fragmentTransaction.add(R.id.mainFrag,fragment);
    fragmentTransaction.commit();

以下是我们在之前的 sn-p 中添加的来自 HomeFrag 的代码。这段代码似乎什么也没做。点击卡片没有效果。 CardView onClick 似乎工作正常,因为 Log.d 和 toasts 执行 onClick。

card.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                
                    FragmentTransaction transaction = getFragmentManager().beginTransaction();
                    Fragment newFragment = new FragSec();
                    transaction.replace(R.id.mainFrag, newFragment);
                    transaction.addToBackStack(null);
                    transaction.commit();
                
        }
    });

任何帮助将不胜感激。 :D

【问题讨论】:

    标签: android android-fragments fragmenttransaction


    【解决方案1】:

    如果您已经通过代码添加了HomeFrag,请尝试将XML更改为此而不在里面声明&lt;fragment/&gt;

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout 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:theme="@style/Theme.Breathe"
        android:id="@+id/mainFrag"
        tools:context=".MainActivity"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多