2

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 onCreateViewuntil later と onStart (またはその他のイベント ハンドラ) でonCreateView同期的に呼び出されるのはなぜですか?

4

1 に答える 1