当我尝试使用XML将Compose插入到overlay(绘制在其他应用程序上)时,我会遇到以下异常:
java.lang.IllegalStateException: ViewTreeLifecycleOwner not found from androidx.constraintlayout.widget.ConstraintLayout{d596746 V.E...... ......ID 0,0-0,0}
字符串
但是没有覆盖(在活动中)它正常工作。有人知道如何解决吗?我已经更新AppCompat库到1.3.0
我的XML代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black">
<androidx.compose.ui.platform.ComposeView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/compose_view"/>
</androidx.constraintlayout.widget.ConstraintLayout>
型
我的叠加代码:
mParams = WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
)
layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
mView = layoutInflater.inflate(R.layout.power_overlay, null)
mParams!!.gravity = Gravity.CENTER
mWindowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
mWindowManager.addView(mView, mParams)
型
5条答案
按热度按时间xmjla07d1#
对我来说,这是因为我没有包含 appcompat 库,我的Activity继承自 Activity 而不是 AppCompatActivity。通过添加库解决了这个问题:
字符串
从 AppCompatActivity 继承:
型
epfja78i2#
对我来说,把
androidx.appcompat:appcompat
从1.0.0
升级到1.4.1
,问题就解决了。碎片:
字符串
XML:
型
xnifntxz3#
1.确保您的约束布局已更新为应用程序级别
build.gradle
文件中的最新版本。字符串
1.为了确保这一点,请搜索并替换ALL您的xml标记名称
型
在每一个地方CTRL+R_
1.在
gradle.properties
中添加这些:型
1.清除/无效缓存并重新启动Android Studio。
文件→失效缓存/重启→失效重启
laximzn54#
我写了这段代码,它工作了。
字符串
现在可以使用了
型
zc0qhyus5#
我正在与绘制覆盖从foregound服务和我的问题是在这里:
字符串