当 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,这解决了问题
我正在使用 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,这解决了问题