0

我正在将文本视图添加到线性布局中,这样在三星 s2 中它工作正常,在三星 s3 中设备布局高度降低。我正在寻找布局高度,但我没有得到

4

2 回答 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
  1. 如果您正在向父级动态添加任何视图,则可以通过使用重力、重量等进行调整,使其与所有分辨率兼容。切勿提供硬代码值。
  2. 您要求获取布局的高度,这可以使用 getHeight() 来完成。
于 2013-09-24T07:16:06.037 回答