如何在Android N中允许多窗口功能活动?

时间:2016-03-26 07:49:37

标签: android android-studio android-activity android-manifest android-7.0-nougat

如何在android app Activity中启用Mutli窗口选项。?

我在两个单独的活动中尝试使用AndroidManifest活动属性android:resizeableActivity

来自Android-N文档我在上面找到的选项

android:resizeableActivity=["true" | "false"]
  

如果此属性设置为true,则可以启动活动   分屏和自由形式模式。如果属性设置为false,则   活动不支持多窗口模式。如果此值为false,   并且用户尝试以多窗口模式启动活动   活动接管全屏。如果您的应用针对Android N,   但是你没有为这个属性指定一个值,即属性   value默认为true。

我尝试了什么

添加了两项活动一项活动使用android:resizeableActivity="false",第二项活动使用android:resizeableActivity="true"AndroidManifest.xml)。

<activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:resizeableActivity="true"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MWActivity"
            android:resizeableActivity="false"
            android:theme="@style/AppTheme.NoActionBar" />

对于这两个活动,应用程序都可以启用Mutli-window&amp;能够调整大小。

根据文档预期的行为

只允许MainActivity允许Mutli-Window&amp;不应允许MWActivity调整大小,因为我已将android:resizeableActivity="false"提交给MWActivity

  

更新:截至目前(当前版本为&#34; N&#34;)可将其视为缺陷

这是&#34; N&#34;的当前版本中的缺陷。来自code.google check this link for more detail

会不断更新答案&amp;我有什么问题。

2 个答案:

答案 0 :(得分:2)

只有在处于多窗口模式时,才可以通过将活动作为新任务启动来以编程方式执行此操作。

final Intent intent = new Intent(this, MWActivity.class);
if (isInMultiWindowMode())
{
   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
startActivity(intent);

答案 1 :(得分:2)

这是预期的,如Android文档中所述。这是根活动的属性设置适用于其任务堆栈中的所有活动。例如,如果根活动将android:resizeableActivity设置为true,则任务堆栈中的所有活动都可以调整大小。

在您的情况下,您对根活动设置了android:resizeableActivity为true,因此在同一任务中创建的所有活动都将支持多窗口。

https://developer.android.com/preview/features/multi-window.html#configuring

中记录了相同内容