我偶然发现了一个疯狂的小“错误”,或者我只是做错了什么。我正在尝试获取对片段内的片段的引用。所以我们有了ParentFragment
,那是一个孩子的MainActivity
。我可以毫无问题地获得对此 ParentFragment 的引用,因为它ParentFragment
已添加到MainActivity
通过代码中:
ParentFragment fragment = new ParentFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentPlaceholder, fragment);
transaction.commit();
我已经像这样ChildFragment
向ParentFragment
via XML 添加了一个:
parent_fragment.xml
<RelativeLayout ... etc>
.. some other views, findViewById('') works great on these.
<fragment
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/childFragment1"
android:tag="1"
class="com.my.package.ChildFragment"
android:name="com.my.package.ChildFragment"
tools:layout="@layout/child_fragment" />
</RelativeLayout>
一切正常,ChildFragment(s) 显示在 ParentFragment 中。唯一的事情是;我找不到 fragmentById。
我尝试了多种方法来实现这一点,应该如何完成(?):
getChildFragmentManager().findFragmentById(R.id.childFragment1)
没用。此外,获取 Activity 并使用该片段管理器不起作用(.. 当然)。
我也尝试在 ChildFragmentManager 中获取所有片段,对其进行迭代等。但这总是返回 null:
getChildFragmentManager().getFragments()
你知道为什么会这样吗?如果片段不是通过代码添加的,我不能使用 ChildFragrentManager 吗?
谢谢!