android如何在绘制ui后运行函数?

时间:2015-05-28 14:37:05

标签: android

我认为我的UI会在onResume方法中准备就绪。 但是,当我运行时,我的应用程序崩溃了:

fragmentManager.beginTransaction().replace(R.id.a, b).commit();

super.onResume()之后,当它崩溃时屏幕是白色的。

我应该在哪里运行此代码,以便它不会给出:

  

java.lang.IllegalArgumentException:找不到视图

2 个答案:

答案 0 :(得分:0)

首先应该熟悉Android Android Activity Lifecycle

然后改善你的问题,如果你还有这个问题。

例如,堆栈跟踪会很好。

但首先,你应该确定,你知道你在编码什么。

答案 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);
    }
}

最后一点是避免每次布局更改时都进行回调。