【发布时间】:2017-01-10 17:31:10
【问题描述】:
使用包含 Button id=button 的 Fragment 创建应用 在
@Override
protected void onStart() {
super.onStart();
getSupportFragmentManager()
.beginTransaction()
.add(R.id.activity_main, new Testfrag())
.commitNow();
View b = findViewById(R.id.button);
}
b 作为按钮返回,片段onCreateView 在方法结束之前被调用。
但是在
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm= getSupportFragmentManager();
fm.beginTransaction()
.add(R.id.activity_main, new Testfrag())
.commitNow();
View b = findViewById(R.id.button);
}
b 为 null,直到方法结束后才会调用片段 onCreateView。
这可能是一个“功能”,但文档中没有任何内容。
为什么 commit Now 在 onCreate 中表现不同 - 直到稍后才调用 onCreateView 和同步调用 onCreateView 的 onStart(或任何其他事件处理程序)?
【问题讨论】:
标签: android android-fragments oncreate fragment-oncreateview