Как сделать настраиваемое цветовое меню для приложения флаттера?

Я хотел бы создать внешний файл дротика (назовем его color_palette.dart), в котором есть несколько классов цветов. Эти классы можно было бы изменить с помощью меню на другой странице приложения. Эти цвета будут использоваться на всех страницах для определения цветов панели приложений, кнопок, значков и т. д. Я не хочу использовать для этого тему(). Я хочу использовать некоторые функции, которые можно использовать в кнопке (onPress: функция), чтобы изменить цвета.

Вот пример:

color_palette.dart

class myColor {
return Colors.red;
}

главная страница.dart

Scaffold(
appbar : AppBar(
  color : MyColor(),
  )
)
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
22
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Есть много способов сделать это:

Первый метод:

// in the file where you define constants
import 'package:flutter/material.dart'; 
const Color color_red = Colors.red;

// in the file where you want to use it
Scaffold(
appbar : AppBar(
  color : color_red,
  )
)

Второй метод, использование класса цвета.

class Palette {
  static const Color color_red = Colors.red;
}

//in the file where you want to use it:

import "package:app_name/folder_name/palette.dart";
Scaffold(
appbar : AppBar(
  color : Palette.color_red,
  )
)
Ответ принят как подходящий

очень легко сделать

    void main() {
      
      //change color A from red to purple
      MyColors.colorA = Colors.purple;
          
    }
    
    class MyColors {
      static Color colorA = Colors.red;
      static Color colorB = Colors.green;
      static Color colorC = Colors.blue;
    }

Scaffold(
appbar : AppBar(
  color : MyColors.colorA,
  )
)

Как обновить цвет панели приложений с помощью Mycolors.colorA? Потому что после тестирования он не меняется

Lear 17.05.2022 14:45

@Lear добавил пример, просто убедитесь, что вы импортируете файл дротика, который содержит ваш класс MyColors

mister_cool_beans 17.05.2022 14:48

Другие вопросы по теме