【问题标题】:How can I disable multiwindow mode for an Activity in Android N+如何在 Android N+ 中禁用 Activity 的多窗口模式
【发布时间】:2016-05-18 22:31:00
【问题描述】:

在 Android N 的开发者预览版中,默认启用多窗口支持。如何为活动禁用它?另外,如果启用了多窗口的应用启动了我禁用的活动,会发生什么情况?

【问题讨论】:

    标签: android multi-window android-n-preview


    【解决方案1】:

    在你的清单中,你需要:

    android:resizeableActivity="false"
    

    因此,在您的清单文件中,对于您要禁用该功能的每个活动,它会像:

    <activity android:name=".SomeActivity"
        android:label="@string/app_name"
        android:resizeableActivity="false" />
    

    或者,如果您想在整个应用中禁用它:

    <application 
       android:resizeableActivity="false" >
        . . .
    </application>
    

    至于会发生什么,Android 不会让您的应用进入多屏模式 - 它只会保持全屏状态。请参阅https://developer.android.com/preview/features/multi-window.htmlhttps://developer.android.com/guide/topics/manifest/activity-element.html#resizeableActivity

    【讨论】:

    • 对于面向 Android N 的应用程序,设置此标志只会给出“应用程序可能无法在拆分模式下运行”的消息。但应用仍会进入分屏模式。
    • @Diffy 这只有在您从开发者选项中启用强制多窗口支持时才有可能。
    • android:resizeableActivity="true" 打破了整体应用设计,那么我如何在 android nougat 中支持分屏(应用布局响应式设计)
    • 不要忘记将 targetSdkVersion 更改为 24 以使“android:resizeableActivity”正常工作
    • @Diffy 你找到解决办法了吗?
    【解决方案2】:

    注意:在启动 Unresizable Activity 时,您还应该在 Intent 中添加 Intent.FLAG_ACTIVITY_NEW_TASK 标志。否则它将继承根 Activity 的属性。

    在您的清单文件中为您的活动添加android:resizeableActivity="false",或者您也可以为您的应用程序添加它:

    <activity android:name=".YourActivity"
    android:label="@string/app_name"
    android:resizeableActivity="false" />
    

    【讨论】:

      【解决方案3】:

      顺便说一句,我将 android:resizeableActivity="false" 添加到 Manifest,然后我用 Locale 切换了语言,一些活动没有改变语言。我注意到一些活动有不同的资源。当我在 Manifest 中删除 resizebleActivity 属性时,它可以正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-20
        • 2017-02-05
        • 1970-01-01
        • 2017-07-31
        • 1970-01-01
        • 2016-11-25
        • 2016-10-13
        • 1970-01-01
        相关资源
        最近更新 更多