flutter - The method 'withValues' isn't defined for the type 'Color' - Stack Overflow

i have error with withValuesmy flutter version is 3.24.5my code:import 'package:eClassifyuith

i have error with withValues my flutter version is 3.24.5 my code:

import 'package:eClassify/ui/theme/theme.dart';
import 'package:flutter/material.dart';

enum AppTheme { dark, light }

final appThemeData = {
  AppTheme.light: ThemeData(
    // scaffoldBackgroundColor: pageBackgroundColor,
    brightness: Brightness.light,
    //textTheme
    useMaterial3: false,
    fontFamily: "Manrope",
    textSelectionTheme: const TextSelectionThemeData(
      selectionColor: territoryColor_,
      cursorColor: territoryColor_,
      selectionHandleColor: territoryColor_,
    ),
    switchTheme: SwitchThemeData(
      thumbColor: const MaterialStatePropertyAll(territoryColor_),
      trackColor: MaterialStateProperty.resolveWith((states) {
        if (states.contains(MaterialState.selected)) {
          return territoryColor_.withValues(alpha: 0.3);
        }
        return primaryColorDark;
      }),
    ),
    colorScheme: ColorScheme.fromSeed(
        error: errorMessageColor,
        seedColor: territoryColor_,
        brightness: Brightness.light),
  ),
  AppTheme.dark: ThemeData(
    brightness: Brightness.dark,
    useMaterial3: false,
    fontFamily: "Manrope",
    textSelectionTheme: const TextSelectionThemeData(
      selectionHandleColor: territoryColorDark,
      selectionColor: territoryColorDark,
      cursorColor: territoryColorDark,
    ),
    colorScheme: ColorScheme.fromSeed(
        error: errorMessageColor.withValues(alpha: 0.7),
        seedColor: territoryColorDark,
        brightness: Brightness.dark),
    switchTheme: SwitchThemeData(
        thumbColor: const MaterialStatePropertyAll(territoryColor_),
        trackColor: MaterialStateProperty.resolveWith((states) {
          if (states.contains(MaterialState.selected)) {
            return territoryColor_.withValues(alpha: 0.3);
          }
          return primaryColor_.withValues(alpha: 0.2);
        })),
  )
};

i have try to create extension method but still didn't work. ...........................................................................................................................................................................................................................................

i have error with withValues my flutter version is 3.24.5 my code:

import 'package:eClassify/ui/theme/theme.dart';
import 'package:flutter/material.dart';

enum AppTheme { dark, light }

final appThemeData = {
  AppTheme.light: ThemeData(
    // scaffoldBackgroundColor: pageBackgroundColor,
    brightness: Brightness.light,
    //textTheme
    useMaterial3: false,
    fontFamily: "Manrope",
    textSelectionTheme: const TextSelectionThemeData(
      selectionColor: territoryColor_,
      cursorColor: territoryColor_,
      selectionHandleColor: territoryColor_,
    ),
    switchTheme: SwitchThemeData(
      thumbColor: const MaterialStatePropertyAll(territoryColor_),
      trackColor: MaterialStateProperty.resolveWith((states) {
        if (states.contains(MaterialState.selected)) {
          return territoryColor_.withValues(alpha: 0.3);
        }
        return primaryColorDark;
      }),
    ),
    colorScheme: ColorScheme.fromSeed(
        error: errorMessageColor,
        seedColor: territoryColor_,
        brightness: Brightness.light),
  ),
  AppTheme.dark: ThemeData(
    brightness: Brightness.dark,
    useMaterial3: false,
    fontFamily: "Manrope",
    textSelectionTheme: const TextSelectionThemeData(
      selectionHandleColor: territoryColorDark,
      selectionColor: territoryColorDark,
      cursorColor: territoryColorDark,
    ),
    colorScheme: ColorScheme.fromSeed(
        error: errorMessageColor.withValues(alpha: 0.7),
        seedColor: territoryColorDark,
        brightness: Brightness.dark),
    switchTheme: SwitchThemeData(
        thumbColor: const MaterialStatePropertyAll(territoryColor_),
        trackColor: MaterialStateProperty.resolveWith((states) {
          if (states.contains(MaterialState.selected)) {
            return territoryColor_.withValues(alpha: 0.3);
          }
          return primaryColor_.withValues(alpha: 0.2);
        })),
  )
};

i have try to create extension method but still didn't work. ...........................................................................................................................................................................................................................................

Share Improve this question asked Mar 3 at 16:12 DrakaresDrakares 132 bronze badges 0
Add a comment  | 

2 Answers 2

Reset to default 3

This is because of a change introduced in Flutter version 3.27, see here, and you are using an earlier version in which withValues does not exist.

Either upgrade to the latest Flutter, or if you want to use your current version, instead of:

territoryColor_.withValues(alpha: 0.3)

use this:

territoryColor_.withOpacity(0.3)

As an addition to the selected answer, you can also create an extension method for Color.withValues to get some forward compatibility. That way, when you upgrade to Flutter 3.27, you only need to delete the extension method instead of combing through your code upgrading each instance of withOpacity to withValues:

import 'dart:ui';

extension ColorWithValuesExt on Color {
  /// Returns a new color with the provided components updated.
  /// Each component (alpha, red, green, blue) represents a floating-point value; see 
  /// [Color.from](https://api.flutter.dev/flutter/dart-ui/Color/Color.from.html) for details and examples.
  Color withValues({double? alpha, double? red, double? green, double? blue, ColorSpace? colorSpace}) {
    final r = red == null ? this.red : (255 * red).round();
    final g = green == null ? this.green : (255 * green).round();
    final b = blue == null ? this.blue : (255 * blue).round();
    return Color.fromRGBO(r, g, b, alpha ?? opacity);
  }
}

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745084180a4610306.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信