Android 应用只占用屏幕的一部分

Android app takes only a part of screen

出于某种原因,我的应用程序只占用了屏幕的一部分。

简单的 onCreate 方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity_main); 
}    

布局稍微复杂一点:

<RelativeLayout   xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/content_layout" >

    <LinearLayout 
        android:id="@+id/mainLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin" >

    <LinearLayout
        android:id="@+id/func_layout"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:background="@drawable/border_right"
        android:orientation="vertical"
        android:paddingLeft="@dimen/function_layout_padding"
        android:paddingRight="@dimen/function_layout_padding" >
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/graph_layout"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:background="#FFF"
        android:alpha="1.0"
        android:layout_weight="5">
    </RelativeLayout>

    </LinearLayout>

</RelativeLayout>

我得到了这个:

我看不出有什么问题。以为是模拟器问题,但在真机上看起来是一样的。

好的,试试这个:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main); 
} 

您不需要下面的那个,因为它会创建这种 windows。

requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN);

感谢@SunitKumarGupta @AnkitBansal 和@Maxouille。

问题出在主题中。

它是什么:

<style name="Theme.Transparent" parent="AppBaseTheme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">false</item>

这里的问题是windowIsFloating。删除它解决了这个问题。