我认为我的UI
会在onResume
方法中准备就绪。
但是,当我运行时,我的应用程序崩溃了:
fragmentManager.beginTransaction().replace(R.id.a, b).commit();
在super.onResume()
之后,当它崩溃时屏幕是白色的。
我应该在哪里运行此代码,以便它不会给出:
java.lang.IllegalArgumentException:找不到视图
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以将onGlobalLayout侦听器添加到主视图中,该视图将被调用' when the global layout state or the visibility of views within the view tree changes'。在onResume
方法中执行以下代码段:
final View mainview = findViewById(R.id.main);
ViewTreeObserver vto = mainview.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
[your code here]
ViewTreeObserver obs = mainview.getViewTreeObserver();
obs.removeGlobalOnLayoutListener(this);
}
}
最后一点是避免每次布局更改时都进行回调。