1

我正在开发一个在 main.xml 中包含 RelativeLayout 的应用程序。额外的 ChildView 会通过 onclick 事件动态添加到 RelativeLayout。

当我运行应用程序时,为我的 nexus 4 重新调整的 displayHeight 是 1184,虽然它应该是 1280。基本上,屏幕的高度被缩短了,但我不知道为什么。我将 layout_height 设置为 match_parent,但是作为 RelativeLayout 的 mFrame 返回 1184。

有谁知道为什么在调用 .getHeight() 时没有返回显示的全长?

onWindowsChanged() 被覆盖以检测正在使用的设备的屏幕尺寸:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {

        // Get the size of the display so this View knows where borders are
        mDisplayWidth = mFrame.getWidth();
        mDisplayHeight = mFrame.getHeight();

        Log.v(TAG, "mDisplayWidth & mDisplayHeight -  w:" + mDisplayWidth + " h: " + mDisplayHeight);
    }
}

这部分代码的 logcat 返回:

mDisplayWidth & mDisplayHeight -  w:768 h: 1184

我的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF444444"
        android:id="@+id/frame">

</RelativeLayout>
4

1 回答 1

2

Nexus 4 的显示屏为 1280 x 768,但 Android 系统按钮占据了部分屏幕。

您的高度返回 1184,因为这是显示器的全高(1280 像素)减去 Android 系统按钮占用的 96 像素。

于 2015-06-21T23:13:12.870 回答