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

时间:2015-04-14 11:21:58

标签: java android android-layout android-activity android-fullscreen

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

简单的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>

我得到了这个:

Android app not in fullscreen

我无法看出问题所在。认为存在模拟器问题,但在实际设备上它看起来是一样的。

2 个答案:

答案 0 :(得分:2)

好的,试试这个:

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

    setContentView(R.layout.activity_main); 
} 

下面不需要它,因为它会创建这种窗口。

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

答案 1 :(得分:1)

感谢@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。删除它解决了这个问题。