首页 > 解决方案 > Android 透明 Activity 没有覆盖整个屏幕

问题描述

我一直在尝试创建一个不透明的 Activity,它与背景中显示的另一个 Activity 重叠。

这是我的 XML 布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".EmergencyActivity">
<androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" android:background="@color/opaque_back">

        <Button
                android:text="Button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:id="@+id/button"
                app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="parent"
        />
    </androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>

清单文件:

      <activity
            android:name=".EmergencyActivity"
            android:theme="@style/Theme.Transparent">

风格:

<style name="Theme.Transparent" parent="AppTheme">
    <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">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

屏幕图片:

https://imgur.com/cqfBlNM - 第一个活动屏幕

https://imgur.com/NUjTAdj - 未完全显示的活动屏幕

标签: androidxmlandroid-activityandroid-manifestandroid-styles

解决方案


我通过从 appCompactActivity 更改为 Activity 来解决它,以便使用 AppCompactActivity 不支持的另一种样式。

我将清单更改为:

<activity
        android:name=".EmergencyActivity"
        android:launchMode="singleInstance"
        android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">

推荐阅读