相关疑难解决方法(0)

如何以编程方式获取Android导航栏的高度和宽度?

Android屏幕底部的黑色导航栏无法轻松移除.它从3.0开始就是Android的一部分,作为硬件按钮的替代品.这是一张图片:

系统栏

如何获得此UI元素的宽度和高度的大小(以像素为单位)?

graphics user-interface android android-activity

113
推荐指数
8
解决办法
10万
查看次数

setOnApplyWindowInsetsListener 从未调用过

我想计算导航栏高度。我看过这个演讲:https : //chris.banes.me/talks/2017/becoming-a-master-window-fitter-nyc/

所以,我尝试使用方法View.setOnApplyWindowInsetsListener()。但是,出于某种原因,它从未被调用过。

有谁知道为什么?有什么限制吗?

我试过这样使用它:

navBarOverlay.setOnApplyWindowInsetsListener { v, insets -> 
   Timber.i("BOTTOM = ${insets.systemWindowInsetBottom}")
   return@setOnApplyWindowInsetsListener insets
}
Run Code Online (Sandbox Code Playgroud)

请注意,我的根布局是一个ConstraintLayout.

user-interface android android-layout windowinsets

17
推荐指数
4
解决办法
7560
查看次数

在onePlusOne设备中逐步检测软导航栏的可用性?

我需要检查一个设备是否有软导航栏,我按照这里的建议.

它工作得很好,除了onePlus设备,出于某种原因,这段代码:

int id = resources.getIdentifier("config_showNavigationBar", "bool", android");
    return id > 0 && resources.getBoolean(id);
Run Code Online (Sandbox Code Playgroud)

虽然显示了软导航栏,但返回false.

知道如何才能得到正确的结果?

我更喜欢不计算实际宽度和可用宽度,这似乎是昂贵的操作.

谢谢.

android

5
推荐指数
1
解决办法
2305
查看次数