我有一个View,一个RelativeLayout“gesLayout”。当“gesLayout”的大小发生变化时,它会调用方法“resize”。
gesLayout = new RelativeLayout(this) {
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
resize(); // -> bei Resize die Elemente neu anordnen.
super.onSizeChanged(w, h, oldw, oldh);
}
};
这是调整大小的方法:
private void resize() {
runOnUiThread(new Runnable() {
@Override
public void run() {
ViewGroup.LayoutParams params = layButtons.getLayoutParams();
params.height = 500;
layButtons.setLayoutParams(params);
layButtons.invalidate();
}
});
}
但是其他布局的高度没有变化。但是当我在resize()方法中运行相同的代码时,单击一个按钮后,它就完美了。
所以我的问题:如何从这里访问UI线程?正如你可以看到runOnUiThread() - 方法无效。
P.S。我已经检查过正确调用resize()方法。
答案 0 :(得分:0)
如果更改布局参数,则需要调用requestLayout再次进行布局。