Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
186 of 1024 menu
◀ ▶

Метод copyWith

Метод copyWith класса BoxDecoration копирует оформление и подставляет новые значения. Поле, которое не передали, остаётся прежним.

Синтаксис

decoration.copyWith(color: Color(0xFFC62828))

Параметры

Параметр Описание
color Цвет Color.
border Новая рамка.
borderRadius Новое скругление углов.
boxShadow Новый список теней.
gradient Новый градиент. Если он задан, заливка цветом не рисуется.

Пример

Давайте заменим синюю заливку на красную и оставим скругление:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: Container( padding: EdgeInsets.all(16), decoration: BoxDecoration( color: Color(0xFF1565C0), borderRadius: BorderRadius.circular(16), ).copyWith(color: Color(0xFFC62828)), child: Text('abcde'), ) ), ), ), ); }

На экране красная карточка со строкой abcde и скруглением, которое было задано до замены.

Пример

Давайте добавим рамку, не меняя заливку:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: Container( padding: EdgeInsets.all(16), decoration: BoxDecoration( color: Color(0xFF1565C0), ).copyWith( border: Border.all(color: Color(0xFFFFFFFF), width: 4), ), child: Text('12345'), ) ), ), ), ); }

На экране синяя карточка со строкой 12345 и белой рамкой. Цвет заливки остался прежним.

Смотрите также

  • метод lerp,
    который смешивает два оформления в заданной доле
  • метод scale,
    который умножает толщину рамки и размытие тени
  • класс BorderRadius,
    который задаёт скругление углов оформления
  • класс Container,
    который рисует оформление вокруг дочернего виджета
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить