对于 iOS,我使用 app.ios.window.safeAreaInsets
来发现 NativeScript 中的安全插入。
同样,我想找到适用于 Android 手机的安全插件,这样我就可以妥善处理具有软导航功能的 Android 设备或具有缺口的较新 Android 手机(例如 OnePlus 6)。
我在 tns-platform-declarations
中看到,对于 SDK 级别 20+,类 android.view.WindowInsets
具有类似 getSystemWindowInsetTop( )
和 getSystemWindowInsetBottom()
,这似乎正是我所需要的。
然而,我正在努力调用这些方法,并且想知道是否有人可以就如何进行提出建议。
到目前为止,我发现 decorView
有一个方法 onApplyWindowInsets()
,但据我所知,我已经需要向该方法传递 的一个实例>android.view.WindowInsets
据我所知这是我所追求的。
这是我目前所拥有的:
if (app.android && device.sdkVersion >= '20') {
const window = app.android.startActivity.getWindow();
const decorView = window.getDecorView();
//decorView.onApplyWindowInsets();
}
谢谢指点!
最佳答案
这段代码对我有用,至少可以检测带有缺口的状态栏的较大高度。
let androidStatusBarHeight = 0;
const context = application.android.context;
const metrics = new android.util.DisplayMetrics();
context.getSystemService(android.content.Context.WINDOW_SERVICE).getDefaultDisplay().getRealMetrics(metrics);
console.log(metrics.density);
const resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if(resourceId > 0) {
console.log(context.getResources().getDimensionPixelSize(resourceId));
androidStatusBarHeight = context.getResources().getDimensionPixelSize(resourceId) / metrics.density;
} else {
androidStatusBarHeight = 24;
}
return androidStatusBarHeight;
关于android - 在 NativeScript 上为 Android 设置安全插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52356901/