问题标签 [android-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 投票
1 回答
107 浏览

android - WindowInsetsCompat.isVisible(WindowInsetsCompat.Type.ime()) 为 Android 23-29 返回 true,但未打开键盘

如果打开键盘,则下一个代码在 Android 11 (30 API) 上返回true(for showingKeyboard) 或false其他:

在 Android 6-10 (23-29) 上,true即使未打开键盘(不可见)也会返回

0 投票
1 回答
341 浏览

android - WindowController 的切换状态栏文本颜色/setAppearanceLightStatusBars 未按预期工作

我为我的应用程序使用两种不同的背景,具体取决于哪个屏幕处于活动状态。一般来说,状态栏是透明的,背景应该放在它后面。根据背景,我需要状态栏文本的颜色为浅色或深色。

到目前为止,我使用此主题属性使状态栏透明(它确实是半透明的,但如果有人知道如何让它透明,将不胜感激)

每当背景应该像这样切换时,我正在使用 Jetpack 导航来导航并将参数传递给目的地

这真的很好。现在不起作用的部分是状态栏文本颜色的切换:

这是使用的控制器,创建于onCreate()我的MainActivity

在这里您可以看到状态栏是绿色的,因为 mainActivity 的背景位于半透明状态栏的后面。windowController.setAppearanceLightStatusBars(true);评论了这个版本 工作版本

在这里,您看到状态栏是白色的,文本是白色的(因为它仍然是绿色背景),但它被向下移动并被某种默认的白色状态栏背景取代。查看电池图标现在的位置。windowController.setAppearanceLightStatusBars(true);未发表评论并在沿路某处被处决 破解版

更新:

之后,我能够在运行 Android 10 的测试设备上获得所需的结果。

在 Emulator Running API 30 上,我现在还有一个问题:

WindowCompat.setDecorFitsSystemWindows(window, false);

让我们在状态栏和导航栏后面绘制。现在状态栏按预期工作,但导航栏隐藏了部分 UI。我需要导航栏处于旧状态,而不是被绘制在下面。有任何想法吗?

为了完整性

0 投票
0 回答
98 浏览

android - 获取 Android Dialog Window 的实际偏移量

这是一个简单的警报对话框。默认重心为中心

我想从屏幕顶部获取对话框窗口的实际距离。

我尝试设置以下属性。

我能够从 top[alert.getWindow().getAttributes().y] 获得窗口的距离。

但是当我将重力设置为以下任何一个时,x 和 y 变为 0。

在此处输入图像描述

特别不适用于android.support.design.widget.BottomSheetDialog

有人可以帮助我如何从屏幕顶部获得实际的对话框窗口距离吗?

0 投票
1 回答
34 浏览

android - 安卓。什么是默认警报对话框宽度

我使用 DialogFragment 和 Inside onCreateDialog 返回 AlertDialog。在不同的设备中,我的对话框宽度是不同的。什么是默认对话框宽度?我不明白什么是默认对话框窗口宽度。我没有找到任何定义对话框宽度的属性。我不需要更改对话框宽度,我只想知道默认对话框宽度是多少。

另外,我注意到无论对话框的内容如何,​​宽度始终保持固定。

我的内容视图宽度是 match_parent

对于我的对话框,我设置了样式 @android:style/Theme.Translucent.NoTitleBar

0 投票
0 回答
21 浏览

android - 现在是否不需要清除 WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 标志以在 android 中设置状态栏?

https://developer.android.com/reference/android/view/Window#setStatusBarColor(int)

上面的文档说我们需要清除 WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 标志来设置状态栏颜色。

但是 WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 已被弃用,经过一些实验,我发现在不清除 WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 的情况下设置状态栏颜色对我的设备没有任何问题。

那么,在 android 中设置状态栏现在是否不需要清除 WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 标志?

0 投票
0 回答
10 浏览

android - 浮动窗口的bringToFront TYPE_APPLICATION_OVERLAY

我使用 TYPE_APPLICATION_OVERLAY 创建了多个浮动窗口,如下所示

2 浮动窗口按 W1、W2 的顺序创建。W2 显示在 W1 之上。我想把 W1 窗口放在前面。

寻找类似的东西

用于叠加。