我目前正在使用matrix_gesture_detector包来缩放,变换和旋转Transform
小部件。
一切正常,但是要改善用户体验,我希望一旦用户将窗口小部件旋转到足够接近所述角度的角度,即可将窗口小部件以90、180、270或360度捕捉。
编辑:为明确起见,我希望用户能够自由旋转窗口小部件,但一旦它足够接近,便可以捕捉到在其任何一个象限内最接近的90度旋转。 因此,解决方案应检测到该“亲密关系”,然后采取相应措施。 Please visit this link to see a GIF which shows the desired effect
我该如何实现?
下面是代码段
Widget transformContainer() {
Matrix4 matrix;
GlobalKey matrixDetectorKey = GlobalKey();
return MatrixGestureDetector(
key: matrixDetectorKey,
onMatrixUpdate: (m, tm, sm, rm) {
setState(() {
matrix = MatrixGestureDetector.compose(matrix, tm, sm, rm);
});
},
child: Transform(
transform: matrix,
child: Container(
padding: EdgeInsets.all(24.0),
width: 100.0,
height: 200.0,
color: Colors.teal,
),
),
);}
答案 0 :(得分:0)
MatrixGestureDetector(
onMatrixUpdate: (m, tm, sm, rm) {
setState(() {
//270 is the angle
m.rotate(m.getTranslation(), 270);
matrix4 = m;
});
},
child: Transform(
transform: matrix4,
child: Container(
padding: EdgeInsets.all(24.0),
width: 100,
height: 200,
color: Colors.teal,
),
),
),
答案 1 :(得分:0)
您将在库中具有旋转功能。此代码适用于捕捉到0度的情况。基本上,我正在做的是如果旋转和x轴的差小于0.2弧度,我将捕捉到0度,同时将旋转保持在单独的变量中。当用户超出此范围时,我再次添加此值并保持正常旋转。
select * from Table2 where T1_ID =?