问题标签 [multi-window]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
990 浏览

android - 启动不支持多窗口的新活动

MyMainActivity支持 Android N 新的多窗口模式。但是,我希望我AwesomeActivity不支持多窗口。

我尝试了以下方法:

AndroidManifest.xml

MainActivity.java

我认为通过添加Intent.FLAG_ACTIVITY_NEW_TASK(有或没有Intent.FLAG_ACTIVITY_CLEAR_TASK),这将意味着AwesomeActivity它将成为其自己的任务堆栈中的根活动,因此,我应该无法在AwesomeActivity.

但是,这不起作用,我仍然可以从 切换到多窗口模式AwesomeActivity,这不是所需的行为。

尽管组合Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK似乎可以启动 AwesomeActivity,但这在某种意义上不起作用,如果您在 AwesomeActivity 中将应用程序置于后台,然后将 AwesomeActivity 带回前台,您将无法返回 MainActivity它已从任务堆栈中擦除。我相信在大多数情况下,用户希望能够返回,MainActivity所以这个解决方案是不够的。

0 投票
1 回答
8374 浏览

android - 如何在我的 Android 应用中启用分屏?

我想为我的 android 应用启用分屏。如果我尝试拖动我的应用程序以使其占据我的 android 设备的上半部分,它会显示消息“应用程序不支持分屏”。但是,对于 Facebook 和 WhatsApp 等其他应用程序,我可以使用分屏。我正在使用带有支持分屏的 Android 7 (nougat) 的 LGE Nexus 5X。

两个应用程序在分屏模式下并排运行。

0 投票
0 回答
623 浏览

android - 如何禁用调整多窗口活动的大小

我刚刚为我的应用程序添加了多窗口支持。我有两个活动 A 和 B,其中 A 开始 B。我想禁用活动 B 的调整大小(或禁用多窗口)。设置android:resizeableActivity=false不起作用。它仅在 A 和 B 都设置为 false commonsblog 时才有效

0 投票
2 回答
1277 浏览

android - 在Android N多窗口模式下按下主页按钮时未调用Activity onStop()

我正在尝试使我们的视频应用程序支持 Android N 多窗口模式。我发现活动生命周期在多窗口模式下变得混乱。现象是当我们的app在全屏竖屏的情况下布局在顶屏,然后我点击Home键,上面的apponPause()调用了却onStop()没有调用。

根据谷歌指南https://developer.android.com/guide/topics/ui/multi-window.html#lifecycleonStop() ,视频应用应该在回调而不是回调中暂停视频播放onPause()

在这种情况下,按下主页按钮,活动进入后台并且对用户不可见,我们的应用程序应该暂停视频播放但我们无法获得onStop()回调。同时,活动不会触发onMultiWindowChanged()回调,这意味着活动虽然在后台,但仍处于多窗口模式。在这种情况下isInMultiWindowMode()将返回true

当应用程序位于左侧屏幕且整个屏幕为横向时,也会出现同样的问题。

我搜索了这个问题,发现有人已经向谷歌发布了问题,但在 Android Nougat 版本中没有处理。

https://code.google.com/p/android/issues/detail?id=215650&can=1&q=multi%20window%20onstop&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened

那么,在这种情况下,什么时候暂停视频播放最合适呢?如果我们在onPause()回调中暂停视频,但在多窗口模式下,用户可能会看到该活动。如果我们不这样做,在这种情况下我们将无法获得onStop()回调。对于这种情况,是否有一些适当的解决方法?

0 投票
1 回答
452 浏览

java - 如何检测它是最近按钮、多窗口模式还是主页按钮 onUserLeaveHint()

在我的应用程序中,我依赖于onUserLeaveHint()用户按下主页按钮时的方法,但是当您通过长按“最近按钮”(我不想执行)在 android 7.0 中启动多窗口模式时,也会调用此方法与按下主页按钮时所做的相同)。所以我想知道是否有办法检测哪个是哪个。干杯!

注意: onMultiWindowModeChanged()被调用 onUserLeaveHint()

0 投票
1 回答
1895 浏览

android - 使用百分比填充的 Google Maps API v2 newLatLngBounds 在多窗口模式下引发错误

我正在根据设备的百分比LatLngBounds使用填充集将相机设置为动画,以便它可以在小型设备上运行。width

这甚至适用于具有 4 英寸显示屏的小型设备,但是它在 Android 7.0 中的多窗口模式和之前支持多窗口模式的设备中失败,例如。银河 S7。

在多窗口模式下的设备上出现以下异常:

这是可疑代码:

如何正确设置填充newLatLngBounds以在所有设备宽度和多窗口模式下工作?

0 投票
2 回答
2196 浏览

android - 如何在 Android N 多窗口模式下确定正确的设备方向?

多窗口文档

多窗口模式下禁用的功能

当设备处于多窗口模式时,某些功能会被禁用或忽略,因为它们对于可能与其他活动或应用程序共享设备屏幕的活动没有意义。这些功能包括:

  • 某些系统 UI 自定义选项被禁用;例如,如果应用程序未在全屏模式下运行,它们将无法隐藏状态栏。
  • 系统会忽略对 android:screenOrientation 属性的更改。

我知道对于大多数应用程序来说,区分纵向和横向模式是没有意义的,但是我正在开发包含相机视图的 SDK,用户可以进行他们希望的任何活动 - 包括支持多窗口模式的活动。问题是相机视图包含显示相机预览的 SurfaceView/TextureView,并且为了在所有活动方向上正确显示预览,需要有关正确活动方向的知识,以便可以正确旋转相机预览。

问题是我的代码通过检查当前配置方向(纵向或横向)和当前屏幕旋转来计算正确的活动方向。问题是在多窗口模式下,当前配置方向并不能反映真实的活动方向。这会导致相机预览旋转 90 度,因为 Android 报告的配置与方向不同。

我目前的解决方法是检查请求的活动方向并将其用作基础,但这有两个问题:

  1. 请求的活动方向不必反映实际的活动方向(即请求可能仍未得到满足)
  2. 请求的活动方向可以是“后面”、“传感器”、“用户”等,它不会透露有关当前活动方向的任何信息。
  3. 根据文档,在多窗口模式下实际上会忽略屏幕方向,因此 1. 和 2. 不起作用

即使在多窗口配置中,是否有任何方法可以稳健地计算正确的活动方向?

这是我目前使用的代码(请参阅有问题的部分的注释):

编辑:我也将此报告给Android 问题跟踪器

0 投票
1 回答
457 浏览

android - 在多窗口模式android中查找活动的位置

我想知道我的活动是在多窗口模式下处于上视图还是底部视图。

这样做的原因是我MediaController在玩家活动中使用了一个自定义,它落后于NavigationBar.

NavigationBar早些时候,我通过添加高度的底部边距来处理这个问题, MediaController但我不能在多窗口模式下使用它。

当活动处于多窗口模式的上视图时,我需要删除底部边距,当它处于底部视图时,我必须提供底部边距。

我尝试将android:fitsInSystemWindows=true属性应用于活动布局和媒体控制器布局,但没有帮助。

谁能帮我这个?

0 投票
1 回答
173 浏览

android - Android:如何在一个活动中启用三星多窗口

我已经得到了多窗口功能,但是,这适用于整个应用程序的所有活动。我想知道有没有办法指定可以使用多窗口的活动?例如,我有一个介绍滑块,我想在其中禁用该功能并在主要活动中重新启用。谢谢。

0 投票
2 回答
1484 浏览

android - 检查多窗口支持

我在检查设备是否支持 Mutli Window 模式时遇到问题。我正在使用此功能进行检查,isInMultiWindowMode()但它已添加到 API 24 中,当我在具有较低 api 版本的设备上运行我的应用程序时,它会导致异常。对于较低的 api 版本,此功能是否有替代品?