当2帧布局堆叠时,Android 12设备中只有底部布局可见



我正在使用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"

到我的活动,这修复了问题

最新更新