使用一个包含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为空并且在方法结束之前不会调用
onCreateView
。这可能是一种“特性”,但文档中没有任何相关说明。为什么在
onCreate
中commitNow的行为与在onStart(或任何其他事件处理程序)中不同,后者会同步地调用onCreateView
?