0

有时我需要在活动刚刚显示时进行一些操作(例如更改布局)。我现在做的是使用post()

public class MyActivity extends Activity {

     @Override
     public void onCreate() {
         ...
         container.post(new Runnable(){
               resize(container);
         });
     }
}

有没有什么生命周期方法onCreate可以用来简化代码,我不需要调用post

@Override
public void onX() {
    resize(container);
}
4

1 回答 1

2

我认为您的意思是在显示 UI 后执行某些操作。

使用全局布局监听器对我来说一直很有效。它的优点是能够在布局更改时重新测量事物,例如,如果某些内容设置为 View.GONE 或添加/删除子视图。

public void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);

     // inflate your main layout here (use RelativeLayout or whatever your root ViewGroup type is
     LinearLayout mainLayout = (LinearLayout ) this.getLayoutInflater().inflate(R.layout.main, null); 

     // set a global layout listener which will be called when the layout pass is completed and the view is drawn
     mainLayout.getViewTreeObserver().addOnGlobalLayoutListener(
     new ViewTreeObserver.OnGlobalLayoutListener() {
          public void onGlobalLayout() {
               // at this point, the UI is fully displayed
          }
     }
 );

 setContentView(mainLayout);

http://developer.android.com/reference/android/view/ViewTreeObserver.OnGlobalLayoutListener.html

于 2012-11-29T06:12:13.523 回答