#android #android-studio #flutter #dart
#Android #android-studio #flutter #dart
Вопрос:
Привет разработчику Super seniors. Я пытаюсь создать приложение для создания сообщений, например, 1SStory в flutter, я хочу добавить изображение или текст или значок в стек, а затем хочу сделать его подвижным, уменьшить масштаб, используя 2 пальца и повернуть. Мне нужно то же самое, что и в приведенном видео-примере
Вы можете проверить здесь, я перепробовал много решений из stackoverflow, эти случаи приведены ниже
Пример 1 Я попробовал приведенный ниже код, но он работает только для того, чтобы сделать виджет подвижным, я не могу ущипнуть и повернуть его.
class MoveableStackItem extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MoveableStackItemState();
}
}
class _MoveableStackItemState extends State<MoveableStackItem> {
double xPosition = 0;
double yPosition = 0;
Color color;
double height = 150, width = 150;
@override
void initState() {
color = RandomColor().randomColor();
super.initState();
}
@override
Widget build(BuildContext context) {
return Positioned(
top: yPosition,
left: xPosition,
child: GestureDetector(
onPanUpdate: (tapInfo) {
setState(() {
xPosition = tapInfo.delta.dx;
yPosition = tapInfo.delta.dy;
print(xPosition);
});},
child: Container(
width: xPosition==0 ? width: xPosition,
height: yPosition ==0? height :yPosition,
color: color,),),);}}
Случай2
Я попробовал приведенный ниже код matrix_gesture_detector с использованием стека, который я могу поворачивать, зажимать и перемещать, но это делается в стеке, поэтому, когда я выполняю любую операцию, например, перемещение, масштабирование, все виджеты перемещаются и масштабируются одновременно, что является проблемой, если у вас есть какое-либо решение, пожалуйста, направьте меня.
Stack(
children: [
MatrixGestureDetector(
onMatrixUpdate: (m, tm, sm, rm) {
notifier.value = m;},
child: AnimatedBuilder(
animation: notifier,
builder: (ctx, child) {
return Transform(
transform: notifier.value,
child: Stack(
children: <Widget>[
Positioned.fill(
child: Container(
height: 150,
width: 150,
transform: notifier.value,
child: Container(height: 150,width: 150,color: Colors.yellow,),
),),],),);},),),],),
Я застрял в последние 5 дней, все еще проводя эксперименты, но все напрасно, пожалуйста, направьте меня, я буду вам очень благодарен.
Комментарии:
1. Вы пробовали это ? Это позволяет выполнять панорамирование и масштабирование
2. Я пробовал это, но он перемещается только между boundaryMargin: EdgeInsets.all(100.0),
3. Я хочу 3 в 1, например, подвижный. ущипните, чтобы увеличить, уменьшить и повернуть.