我正在将文本视图添加到线性布局中,这样在三星 s2 中它工作正常,在三星 s3 中设备布局高度降低。我正在寻找布局高度,但我没有得到
问问题
463 次
2 回答
0
只需从布局中获取视图树观察者并将侦听器附加到它。现在在里面,你可以得到它的高度或宽度,你只需要解除全局布局监听器。请注意,对于 android sdk > 16,您必须使用 mContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this);
private ViewGroup mContainer;
@Override
public void onResume() {
super.onResume();
final ViewTreeObserver observer = mContainer.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int layoutHeight = mContainer.getHeight();
rowHeight = layoutHeight / getResources().getInteger(R.integer.rows);
mContainer.getViewTreeObserver().removeGlobalOnLayoutListener(this);
if (Build.VERSION.SDK_INT >= 16) {
mContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
}
}
于 2013-09-24T07:01:56.923 回答
0
- 如果您正在向父级动态添加任何视图,则可以通过使用重力、重量等进行调整,使其与所有分辨率兼容。切勿提供硬代码值。
- 您要求获取布局的高度,这可以使用 getHeight() 来完成。
于 2013-09-24T07:16:06.037 回答