gpt4 book ai didi

android - 我如何在不使用 SafeArea 的情况下检查设备是否有缺口?

转载 作者:行者123 更新时间:2023-12-05 04:46:22 27 4
gpt4 key购买 nike

我正在设计一个视频通话屏幕,我必须在其中管理孔屏幕之间的 selfViewContainer。

enter image description here

在这个屏幕上,我已经管理了水平对齐的大部分部分,但对于垂直,它在有缺口的设备上无法正常工作。

我想在拖动时从顶部开始最小填充 50

这是一个可拖动的橙色容器的代码

Widget _selfView() {

return Positioned(
top: _selfViewTop,
left: _selfViewLeft,
child: Draggable(
feedback: _draggableView(),
childWhenDragging: Container(),
child: _draggableView(),
onDragEnd: (dragDetail) {
var screenWidth = AspectSize.getScreenWidth(context: context);
var screenHeight = AspectSize.getScreenHeight(context: context);

_selfViewLeft = dragDetail.offset.dx;
_selfViewTop = dragDetail.offset.dy;

if (_selfViewLeft < (screenWidth / 2)) {
_selfViewLeft = 16.0;
} else if (_selfViewLeft > (screenWidth / 2)) {
_selfViewLeft = (screenWidth) - (_selfViewWidth + 16);
}

if (_selfViewLeft < 1.0) {
_selfViewLeft = 16.0;
} else if ((_selfViewLeft + _selfViewWidth) > screenWidth) {
_selfViewLeft = (screenWidth) - (_selfViewWidth + 16);
}
if (_selfViewTop < 1.0) {
_selfViewTop = 50;
} else if ((_selfViewTop + _selfViewHeight) > screenHeight) {
_selfViewTop = (screenHeight) - (_selfViewWidth + 50);
}

setState(() {});
},
),
);
}

对于我使用的这个 UI,用于管理容器的 Stack 小部件橙色容器用于显示调用者的图片,蓝色容器将显示另一个人的图片。

请给我一些解决方案。

谢谢。

最佳答案

你可以使用MediaQuery.of(context).viewPadding并检查填充是否大于零,然后你将需要一个安全区域,因为有一个缺口.

处理缺口行为的最佳方法是使用 flutter_device_type包。

上述包中的以下代码可以判断缺口:

if( Device.get().hasNotch ){
//Do some notch business
}

谢谢。

关于android - 我如何在不使用 SafeArea 的情况下检查设备是否有缺口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68843181/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com