Android - 声明全屏和 AppCompatActivity 冲突



当我在清单中声明我的应用程序应该是全屏的时,我是这样做的

<application
    android:allowBackup="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

但是每次我这样做时,它都会导致在我的主活动或其他类中扩展 AppCompatActivity 类时出错。所以我必须使用活动类来缓解这种情况,但我必须有不太漂亮的图形。有没有其他方法可以定义我的应用程序全屏,而不会与AppCompatActivity类冲突,或者是否有任何解决方案来解决上述当前情况。谢谢。

样式.xml

<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>

在清单中

<application
  android:allowBackup="true"
  android:icon="@mipmap/ic_launcher"
  android:label="@string/app_name"
  android:supportsRtl="true"
  android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">

styles.xml文件中设置主题

如下
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="colorPrimary">@color/colorPrimary</item>
  <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  <item name="colorAccent">@color/colorAccent</item>
</style>

并将此样式添加到AndroidManifest.xml文件中

<application
  android:allowBackup="true"
  android:icon="@mipmap/ic_launcher"
  android:label="@string/app_name"
  android:supportsRtl="true"
  android:theme="@style/AppTheme">

在清单中删除它并在活动中添加这些行

 @Override
public 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);
}

相关内容

  • 没有找到相关文章

最新更新