我正在动态创建一个板,由在相对布局中动态设置的视图组成。在我的 onCreate 中,我调用了创建所有内容的 Board 类的构造函数:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
RelativeLayout boardLayout = (RelativeLayout) findViewById(R.id.layoutBoard);
board = new Board(this, boardLayout);
}
在我的 Board 类中,我设置了层的规则,我还需要设置我显示的视图的大小,我从和的值开始计算boardLayout.getWidth()
它们boardLayout.getHeight()
现在的问题是,所有在屏幕上的实际绘制都是在onCreate方法结束之后才进行的,所以在创建的那一刻,图层的宽高都为零。
所以我决定使用以下方法设置大小:
boardLayout.addOnLayoutChangeListener(new RelativeLayout.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right,
int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
board.setParentLayoutSize(left, top, right, bottom);
}
});
不幸的是,这种方法仅适用于 API 11,我必须坚持使用 API 10。我怎么能做到这一点?有没有办法在不使用这种方法的情况下监听布局变化?
谢谢!