我正在与ArCore合作进行一个项目。

我正在尝试在另一个Fragment中创建ArFragment对象的实例。它一直返回null。

我有一个Activity,MainActivity,并且在ViewPager中总共使用了3个片段。

ArFragment返回null-图像

java - 在另一个 fragment 内创建ArFragment对象-LMLPHP

当我尝试从第二个 Activity 创建ArFragment对象时,它起作用。但是将Arfragment从第二个 Activity 传递到Fragment会导致糟糕的用户体验,因此我宁愿避免这种情况。

有什么办法可以在另一个Fragment中创建ArFragment吗?

最佳答案

我猜你应该在getChildFragmentManager中调用onActivityCreated

这是我的代码,它运行正确。 (对不起,这是科特林)

class MyFragment : Fragment() {
    private lateinit var arFragment: ARFragment

    override fun onCreateView(
        inflater: LayoutInflater, @Nullable container: ViewGroup?, @Nullable savedInstanceState: Bundle?
    ): View? {
        // fragment_sample contains ARFragment
        return inflater.inflate(R.layout.fragment_sample, container, false)
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        arFragment = childFragmentManager.findFragmentById(R.id.ar_fragment) as MyARFragment
        ...
     }
     ...

completely code

10-05 19:02