如何在Android中正确隐藏活动标题

时间:2016-03-28 12:59:20

标签: android

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
}

使用错误

崩溃了我的应用
android.util.AndroidRuntimeException: requestFeature() must be called before adding content

我知道在设置内容视图之前我必须请求窗口功能以及我正在做的事情。为什么错误仍然存​​在?

我的Acitivty扩展了AppCompatActivity,并在清单中声明如下:

 <activity
            android:name=".activity.CameraActivity"
            android:label="@string/title_activity_camera"
            android:theme="@style/Theme.AppCompat.Light.Dialog"></activity>

编辑完整堆栈跟踪:

Process: irisrecognition.example.com.irisrecognition, PID: 29756
 java.lang.RuntimeException: Unable to start activity ComponentInfo{irisrecognition.example.com.irisrecognition/irisrecognition.example.com.irisrecognition.activity.CameraActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
     at android.app.ActivityThread.access$900(ActivityThread.java:177)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.app.ActivityThread.main(ActivityThread.java:5942)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
  Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
     at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:359)
     at android.app.Activity.requestWindowFeature(Activity.java:3785)
     at irisrecognition.example.com.irisrecognition.activity.CameraActivity.onCreate(CameraActivity.java:56)
     at android.app.Activity.performCreate(Activity.java:6289)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
     at android.app.ActivityThread.access$900(ActivityThread.java:177) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:145) 
     at android.app.ActivityThread.main(ActivityThread.java:5942) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195) 

3 个答案:

答案 0 :(得分:0)

您必须在super.onCreate之前调用requestFeature。在super.onCreate()之前调用requestFeature()是必要的 用

替换你的代码
@Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);            
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
}

答案 1 :(得分:0)

requestWindowFeature

之前致电super.onCreate
@Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
}

答案 2 :(得分:0)

你可以试试这个:

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

我希望这会对你有所帮助。

相关问题