如何在 Android N 中更改多个 window 显示的视图?如何检查应用程序是否在 multiwindow 中?

How to change view for multiple window display in Android N? How to check application is in multiwindow or not?

我们如何为多个 window 提供单独的布局或单独的 activity?

例如。我在 android 开发者网站

的帮助下检查了以下内容
<activity android:name="com.configure.it.MyScreen">
    <layout android:defaultHeight="400dp"
          android:defaultWidth="200dp"
          android:gravity="top|end"
          android:minimalSize="300dp" />
</activity>

通过声明以上内容,它会影响 activity 在多 window 模式下的行为。

但是,如果我的特定屏幕在 Multiple-Window 上激活,我该如何显示不同的布局?

来自 Android Developer link .

更改 UI 或应在 Multiple-window 激活时使用的单独布局。

我们可以通过以下方式检查activity是否在Multiple-window中

  • 从activity Activity.isInMultiWindowMode()调用查看activity是否处于multi-window模式

例如。要检查 Activity 如果它的倍数 window 比 header (或者任何视图应该有红色背景颜色如果它不是多个 window 那么它应该是绿色背景颜色)

headerView.setBackgroundColor(inMultiWindow()?Color.RED:Color.GREEN);

使用inMultiWindow()替换片段也是可能的

  • 在 Multiple-Window 激活时获得回调。

从 Activity onMultiWindowChanged 方法可用于处理此方法的运行时更改 callback.System 将在 activity 进入或离开 multi-window 模式 boolean value.With sample link & android 开发者 link

的帮助
@Override
public void onMultiWindowChanged(boolean inMultiWindow) {
    super.onMultiWindowChanged(inMultiWindow);
    headerView.setBackgroundColor(inMultiWindow ? Color.RED : Color.GREEN);
    // here we can change entire fragment also.
    //If multiple window in than seperate and for multiple window out different

}

如果有什么消息会继续更新的。

isInMultiWindowMode() 添加到 API 24 以检查设备是否处于 Multi window 模式,它 returns 一个布尔值价值。每当设备进入 Multi window 模式时,它都会触发 onConfigurationChanged() 方法。

您将需要手动更新您的视图、重新加载资源等... 在基于横向和纵向的 onConfigurationChanged() 中模式。

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
     if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
      {
        //do something (Update your views / Reload resources)
      }else{

      }
}

在Manifest.xml

 <activity
   android:name=".yourActivity"
   android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
 />

如需进一步参考,请查看 Multi-Window Support Google Dev and MultiWindow Medium Corp