Button id=button In を含む 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
- doesn't call onCreateView
until later と onStart (またはその他のイベント ハンドラ) でonCreateView
同期的に呼び出されるのはなぜですか?