我想膨胀一个布局,其中包含一个在其中声明的片段。该布局然后作为子视图添加到framelayout。尽管片段正确膨胀,但我根本无法搜索片段。使用布局xml动态地膨胀一个片段,找不到片段
class Activity1 extends Activity {
public void onCreate(...){
setContentView(R.layout.container);
mContainer = findViewId(R.id.container);
}
public void OnClick(...){
LayoutInflater.from(this).inflate(R.layout.child, mContainer);
Fragment f =getSupportFragmentManager().findFragmentById(R.id.container);
//f is always null
}
}
layout.container
<FrameLayout android:id="@+id/container" .../>
layout.child
<fragment android:name="com.example.child" .../>
我错过了什么吗?
我想我找到了问题,
这是fragmentmanager代码
View parent = null;
int containerId = parent != null ? parent.getId() : 0
fragment.mFragmentId = id != 0 ? id : containerId;
,所以我想利用布局吹气以同样的方式不起作用如添加使用FragmentManager片段膨胀片段
所以我发现了一些有趣的东西,片段管理器只能通过这种方式获取片段膨胀,如果它们是从片段而不是从ListFragment派生的。 所以现在剩下的唯一一点是,为什么使用这种方式膨胀的碎片不能用id搜索,因为容器的id应该成为framgner的id。 – user210504