使用startActivityForResult时,Android 12:布局未正确显示



我正在将android应用程序从目标SDK 30迁移到31:

compileSdkVersion 31
buildToolsVersion '31.0.0'
defaultConfig {
applicationId "some.app.id"
minSdkVersion 16
targetSdkVersion 31
versionCode xyz
versionName "xyz"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}

有一个活动的行为因其打开方式而异:

  • startAcitity:Aitivity按预期工作
  • startActivityForResult:UI工作不正常(元素在通过程序更改可见性后不会出现,按钮大小不再适应其内容,但设置了固定大小(

经过一些测试,问题似乎与UI的大小调整有关。它不再发生了。按钮不会根据其内容调整大小,设置为GONE的元素仍然占用空间等。

还有人遇到过这个问题吗?

我试图在一个新项目中重现这个问题,但没有成功。

最终,我发现这个问题是由于在错误的线程中更改了UI而发生的:android.view.ViewRootImpl$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能访问其视图。

在";runOnUiThread"解决了这个问题。

最新更新