0

如何在 onCreate 期间确定活动的尺寸(宽度和高度)。尺寸不能是整个屏幕的尺寸,而只能是 Activity 使用的区域的尺寸。我尝试在 SO 上发布的一些方法最终都给出了设备的最大屏幕尺寸。

4

2 回答 2

0

您是否尝试过(不完全是 onCreate):

activityRootView = findViewById(R.id.yourRootView);    
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                   //activityRootView.getHeight();
                   //...
                }
             }
        });

当然,您的活动主布局必须匹配父级或填充内容

于 2013-07-31T09:09:22.147 回答
0

整个用户内容都去了,android.R.id.content所以你可以做的是

final Rect rectgle = new Rect();
LinearLayout mContent = (LinearLayout)findViewById(android.R.id.content).getParent();
mContent.getWindowVisibleDisplayFrame(rectgle);
// and use
//rectgle.top;
//rectgle.left
//rectgle.right

这包括操作栏,如果你想排除操作栏也直接使用

//findViewById(android.R.id.content); 

它返回一个FrameLayout

于 2013-07-31T09:34:26.823 回答