当 2 个框架布局堆叠时,只有底部布局在 Android 12 个设备中可见

when 2 frame layouts are stacked, only the bottom layout is visible in Android 12 devices

我正在使用 DeepAR 和 Agora 创建一个视频通话应用程序,我创建了一个视频通话 UI,顶部有帧布局(本地视图),底部有另一个帧布局(远程视图 - 全屏)。

接通电话后,顶部的框架布局(本地视图)变得不可见,只有底部的远程视图可见。

这仅发生在 Android 12 及更高版本的设备上,在低于 12 的所有其他版本上,两个框架布局都可见并且在通话期间工作。

这是我的 XML 布局

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/rootLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/bg_gray">

    <FrameLayout
        android:id="@+id/remote_video_view_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:elevation="0dp"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="0dp"/>

    <FrameLayout
        android:id="@+id/localPreview"
        android:layout_width="150dp"
        android:layout_height="200dp"
        android:layout_gravity="end"
        android:layout_margin="40dp"
        android:background="@drawable/rounded_edge_frame"
        android:elevation="10dp"
        app:cardCornerRadius="12dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

我在将视图设置为远程视图布局时已经在使用以下内容

  local.removeAllViews();
  local.addView(surfaceView);
  local.invalidate();
  local.requestLayout();
  local.bringToFront();

看来Android 12 没有得到想要的结果的修正。所以我添加了

android:hardwareAccelerated="false"

我的activity,这解决了问题