android 如何检测哪种类型的导航栏处于活动状态?[duplicate]

uubf1zoe  于 2023-01-24  发布在  Android
关注(0)|答案(1)|浏览(124)
    • 此问题在此处已有答案**:

How to detect bottom soft navigation bar available in android programmatically?(8个答案)
7天前关闭。
这篇文章7天前被编辑并提交审查。
如何通过代码确定两个导航栏中的哪一个处于活动状态?

关闭此问题的linked duplicate没有回答此问题。它不允许区分上面显示的两个导航栏。

mklgxw1f

mklgxw1f1#

您可以根据Android底部导航风格计算设备高度。
为了进行计算,需要device_info_plus库。
https://pub.dev/packages/device_info_plus
使用此库,您可以检查真实的器件高度。
这是AndroidDeviceInfodisplayMetrics.heightPx
然后您可以计算Android导航高度(androidNavHeight

final devicePixelRatio = MediaQuery.of(context).devicePixelRatio;
final screenHeight = MediaQuery.of(context).size.height;

final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
final AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo;
final deviceHeight = androidInfo.displayMetrics.heightPx;

final androidNavHeight = deviceHeight / devicePixelRatio - screenHeight;

如果导航样式为按钮,则androidNavHeight将为48。
否则,如果导航风格为滑动手势,则结果将约为14.857....

相关问题