Android:从横向启动仅限纵向活动会导致对话框脱离屏幕

时间:2017-08-24 19:09:06

标签: android android-layout

我有一个支持纵向和横向方向的应用程序。在此应用程序中,有一个仅限肖像的活动。在新活动中,MaterialDialogs(https://github.com/afollestad/material-dialogs)是在OnCreate方法中构建的。当初始活动处于横向模式并且新活动开始时,它将切换为纵向,但MaterialDialogs的大小有时会像横向一样(因此会在屏幕外延伸)。如果活动在方向改变动画开始之前开始,这似乎会发生,但是否发生这种情况似乎是任意的。

我最初的解决方案是简单地显示并立即关闭对话框,因此下次显示它们时,它们会自行调整大小。这适用于运行Android 7.1.2的Moto X.但是,它不适用于运行Android 7.0的Nexus 6,因为对话框不会自行调整大小。

我试过没有运气的其他事情是:

  • 在OnStart和OnResume
  • 中构建材质对话框
  • 在300ms延迟后建立MaterialDialogs(我不知道这是否会延迟更长时间,但即使这样,我也不会在显示对话框之前有更长的延迟)
  • 使用和不使用"方向更改AndroidManifest" android:configChanges
  • 下的旗帜
来自AndroidManifest的

Snippet:

<activity android:name=".MyActivity"
android:configChanges="screenLayout|smallestScreenSize|layoutDirection|orientation|screenSize"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/Theme.myTheme"
android:resizeableActivity="false" />

那么,有没有人看过这个并想出一个修复方案?如果没有,有没有办法延迟调用OnCreate,直到方向动画结束?最后,是否有针对Nexus 6的修复/解决方法没有自动调整对话框的大小?

0 个答案:

没有答案