2016-10-22 156 views
0

AndroidManifest.xml看起來像這樣:Android中移除標題不起作用

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="example.com.kamera"> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:supportsRtl="true" 
    android:theme="@android:style/Theme.Black.NoTitleBar"> 
    <activity 
     android:name=".FullscreenActivity" 
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

和我的全屏活動看起來像這樣:

public class FullscreenActivity extends AppCompatActivity { 

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

} 

你有什麼想法,爲什麼我的應用程序崩潰?我只想刪除標題欄,標籤,基本上都是。

崩潰日誌:

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: example.com.kamera, PID: 23069 
        java.lang.RuntimeException: Unable to start activity ComponentInfo{example.com.kamera/example.com.kamera.FullscreenActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2484) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544) 
         at android.app.ActivityThread.access$900(ActivityThread.java:150) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
         at android.os.Handler.dispatchMessage(Handler.java:102) 
         at android.os.Looper.loop(Looper.java:168) 
         at android.app.ActivityThread.main(ActivityThread.java:5845) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 
        Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
         at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:351) 
         at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:320) 
         at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:281) 
         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143) 
         at example.com.kamera.FullscreenActivity.onCreate(FullscreenActivity.java:22) 
         at android.app.Activity.performCreate(Activity.java:6248) 
         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125) 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2437) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544)  
         at android.app.ActivityThread.access$900(ActivityThread.java:150)  
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)  
         at android.os.Handler.dispatchMessage(Handler.java:102)  
         at android.os.Looper.loop(Looper.java:168)  
         at android.app.ActivityThread.main(ActivityThread.java:5845)  
         at java.lang.reflect.Method.invoke(Native Method)  
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)  
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)  

styles.xml看起來像這樣:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

    <style name="FullscreenTheme" parent="AppTheme"> 
     <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item> 
     <item name="android:windowActionBarOverlay">true</item> 
     <item name="android:windowBackground">@null</item> 
     <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item> 
     <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item> 
    </style> 

    <style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar"> 
     <item name="android:background">@color/black_overlay</item> 
    </style> 
</resources> 

這些佈局的,我應該怎麼稱呼? android:theme="???"

+0

write callstack – Vyacheslav

+0

添加您的崩潰日誌 – USKMobility

+0

我已更新問題 – mafioso

回答

0

我通過更改中的代碼解決了此問題文件:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

更改父Theme.AppCompat.NoActionBar和它的作品!

+0

如果你這樣做,那麼默認情況下,你的所有活動都將沒有TITLE BAR – Sanjeet

0

如果其他部分都正確的校驗這個方向進行初始化

requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_fullscreen); 
     super.onCreate(savedInstanceState); 

固定在AndroidManifest.xml文件崩潰使用本: <activity android:theme="@style/Theme.AppCompat" ...

+0

仍然無效。我已經更新了這個問題,現在你可以看到崩潰日誌 – mafioso

+0

@mafioso,更新 – Vyacheslav

+0

無論如何看起來不工作看我已經更新了 – mafioso

0

試試這個,在你onCreate方法

requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
setContentView(R.layout.activity_fullscreen); 
0

使用AppCompatActivity時,請確保您使用的是AppCompat的主題。應用

更改主題標籤,並從活動現在

android:theme="@style/AppTheme" 

而且(刪除它,在styles.xml文件中創建一個風格

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
</style> 

,在下面行Acitvity類移動的setContentView之前)

requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
super.onCreate(savedInstanceState); 
setContentView(R.layout.your_layout); 
+0

我應該寫什麼'在這裏定製你的主題?' – mafioso

+0

什麼都沒有,'AppTheme'已經存在於您的styles.xml文件 – Sanjeet

+0

只是在清單和活動類中進行更改 – Sanjeet