Flutter - Изменить цвет фона виджета - PullRequest
0 голосов
/ 05 апреля 2019
Widget _buildImageColumn() => Container(
     decoration: BoxDecoration(
    color: Colors.black26,
  ),
  child: Column(
    children: [
      _buildImageRow(1),
      _buildImageRow(3),
    ],
  ),
);

Widget _buildDecoratedImage(int imageIndex) => Expanded(
  child: Container(
    decoration: BoxDecoration(
      border: Border.all(width: 10, color: Colors.black38),
      borderRadius: const BorderRadius.all(const Radius.circular(8)),
    ),
    margin: const EdgeInsets.all(4),
    child: Image.asset('images/pic$imageIndex.jpg'),
  ),
);

Widget _buildImageRow(int imageIndex) => Row(
  children: [
    _buildDecoratedImage(imageIndex),
    _buildDecoratedImage(imageIndex + 1),
  ],
);

Приведенный выше код взят с сайта флаттера.

Я хочу изменить цвет фона виджета с помощью анимации (изображения). Но после первой вкладки я не хочу снова выполнять функцию касания.

Я попытался переместить _buildDecoratedImage к состоянию с виджетом, и я могу анимировать конкретный виджет и отключить нажатие только на этот виджет. Я не могу отключить нажатие на другие три изображения (виджеты).

, хотя я могу анимировать фон, не перемещая _buildDecoratedImage в StatefulWidget и отключить нажатие всех виджетов. Но весь экран перестраивается.

Есть ли способ достичь этого без использования потоков? Одно изображение должно быть повернуто и анимировать фон, и после этого каждое изображение не должно быть нажато.

Пожалуйста, предложите лучшее решение для этого.

...