【问题标题】:App crashing when trying to hide the title bar尝试隐藏标题栏时应用程序崩溃
【发布时间】:2020-04-30 17:42:55
【问题描述】:

为了制作全屏应用,我对新的“空白活动”项目的清单进行了以下更改:

  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

应用程序在任何设备上运行时都会崩溃。 StackOverflow 中的许多帖子都推荐了我所做的更改,但我无法弄清楚我做错了什么。

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    <activity
        android:name="com.example.app.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
 </application>
</manifest>

【问题讨论】:

标签: android android-fullscreen


【解决方案1】:

只需按照以下方式进行:

import android.support.v7.app.ActionBarActivity;

扩展:

    public class SplashScreen extends ActionBarActivity {

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getSupportActionBar().hide();
            setContentView(R.layout.splash_screen);
    }
}

它可以在 API 7 级或更高级别上正常工作。

编辑:

使用AppCompatActivity,因为ActionBarActivity @deprecated 在 API 23 中。

【讨论】:

    【解决方案2】:

    您可以像这样以编程方式执行此操作:(如果您使用它,则无需编辑清单文件)

     super.onCreate(savedInstanceState);
           setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    
            setContentView(R.layout.main);  
    

    【讨论】:

      【解决方案3】:

      将其包含在您的清单文件中。它会起作用的。

      android:theme="@android:style/Theme.NoTitleBar"
      

      【讨论】:

      • 看清楚我的回答。它与您使用的不同。
      • 你正在使用 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 而不是使用这个 android:theme="@android:style/Theme.NoTitleBar"
      • @AnixPasBesoin 您需要发布堆栈跟踪。崩溃可能是由于不同的原因
      【解决方案4】:

      为了全屏显示您的应用,请在 res-->values-->styles.xml 中的 style.xml 文件中使用以下代码

      android:theme="@android:style/Theme.Holo.Light.NoActionBar"
      

      或者 ELSE 在 Android Manifest 文件中提到的每个活动的编程代码中使用窗口管理器,如下所示...

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

      【讨论】:

      • 你清理你的项目了吗?
      【解决方案5】:
      try
              {
                  this.getSupportActionBar().hide();
              }
              catch (NullPointerException e){}
      
              setContentView(R.layout.activity_main);
      

      这对我有用,试试这个!

      【讨论】:

      • 包 com.example.casser;导入androidx.appcompat.app.AppCompatActivity;导入android.os.Bundle;导入android.view.View;导入android.view.Window;公共类 MainActivity 扩展 AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);试试 { this.getSupportActionBar().hide(); } catch (NullPointerException e){} setContentView(R.layout.activity_main); } }
      猜你喜欢
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多