blob: 64021c6262dbbfd53c1fc3e1b266f4023b31768c [file] [log] [blame]
<html devsite><head>
<title>分屏交互</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>
在 Android 7.0 及更高版本中,用户可以借助平台功能(<a href="/devices/tech/display/multi-window">多窗口模式</a>)在设备屏幕上同时显示多个应用。
默认模式是分屏,该模式可为用户提供两个活动窗格供他们放置应用。
</p>
<p>
Android 8.0 通过优化分屏功能并为其添加更多功能来改进分屏模式。在默认实现中,如果用户在进入分屏模式后点按<strong>主屏幕</strong>,则系统会压缩顶部窗格,并调整启动器的大小。这是为了向用户展示顶部应用依然处于打开状态,同时保持用户的启动器布局,以便用户从主屏幕中查找和启动应用。
</p>
<h2 id="examples-and-source">示例和源代码</h2>
<p><code>/platform/packages/apps/Launcher3/</code> 中的 Launcher3 代码中有这项新功能的参考实现
</p>
<p>
以下更改 ID 与在 Launcher3 中实现分屏相关,并且可供要对其启动器进行类似更新的设备制造商作为参考。
</p>
<ul>
<li>Change-Id:<code>I48e5cb3bd15e70627d9bf007d93bc731612fba2e</code></li>
<li>Change-Id:<code>I86753bab5b24aafc417e0f77d8c471fc4c0dc7f0</code></li>
<li>Change-Id:<code>Id6557d070edb664aa1f4851de7abf494cf8a0677</code></li>
<li>Change-Id:<code>Icdaf73ecd89a30e57fe7f405292d793f2d6a3ee8</code></li>
<li>Change-Id:<code>Ie50279f4edb94812120dea492aefa4f18218162f</code></li>
<li>Change-Id:<code>I6f9ee7be12d3266f021796576c771f86f6120246</code></li>
<li>Change-Id:<code>I106fe12041565a090047f146a07d4bc80a074b4a</code></li>
<li>Change-Id:<code>Ibb49c56aab29d1223a0ab36476a32d565566eb25</code></li>
<li>Change-Id:<code>Id60c793730d982277c9d91860e9fb0e6a0df7d38</code></li>
<li>Change-Id:<code>I9d358e74ab403989929dee87542d3dde78c2f229</code></li>
<li>Change-Id:<code>I925d5ac9d29439c5d61cf089e7784065a8cb5ebd</code></li>
<li>Change-Id:<code>I776c6f710e081645cff891487022cf787869ee3f</code></li>
<li>Change-Id:<code>I2d17c89db2eb8d60b3393c2abc3b026e5574085d</code></li>
<li>Change-Id:<code>Id6ee68826c4f3cc579880540812fd8ed834f8267</code></li>
</ul>
<h2 id="example-ux">UX 示例</h2>
<p>
以下是示例屏幕,用于展示此功能的默认实现的用户体验。
</p>
<p><img src="/devices/tech/display/images/split-screen-example-ux.png" alt="用于展示启动器调整大小行为的示例屏幕"/>
</p>
<p class="img-caption"><strong>图 1</strong>. 用于展示在分屏模式下调整启动器大小的示例屏幕。
</p>
<h2 id="implementation">实现</h2>
<p>
尽管 Android 8.0 可为此分屏更新提供参考实现,但设备制造商在其启动器中的实现还是要由他们自己来确定。为了支持此功能,请执行以下操作:
</p>
<ul>
<li>实现符合 Android 兼容性定义文档 (CDD) <a href="/compatibility/android-cdd#3814-multi-windows">多窗口要求</a>的多窗口(或具有多窗口的现有实现)。</li>
<li>使启动器可供调整大小。Launcher3 中的参考实现会在屏幕变小的情况下移除应用名称,但具体实现可能会因启动器压缩方式而异(特别是在存在自定义启动器代码的情况下)。</li>
<li>在启动器清单中设置最小指定高度值。为此,请在以下位置调整 <code>task_height_of_minimized_mode</code> 值:<code>frameworks/base/core/res/res/values/dimens.xml</code></li>
</ul>
<h2 id="testing">测试</h2>
<p>
使用手动测试来确保您的实现正常运行。
</p>
<ol>
<li>进入分屏模式。</li>
<li><strong>主屏幕</strong>按钮。</li>
<li>观察可调整大小的启动器。</li>
</ol>
<p>
确保启动器在其支持的所有设备屏幕方向上均可正确调整大小。
</p>
</body></html>