Flutter:使用来自另一个 class 的链接 ID 导入正确的颜色值
Flutter: Import the correct color values with the linked id from another class
我想访问另一个 class (class RubricItem) 中的列表中的数据。颜色必须是对应id的颜色
然后我想将我从 RubricItem class 调用的列表中的数据插入到颜色 class 中的列表中。在 Colors class 中是参数 id :.根据我输入的 ID,我的 "rubricColor:" 应该知道它的值应该是多少。
示例:
我从Colorsclass'BlueAccent'中记下list的id值,那么他也得知道rubricColor:里面要写什么颜色。他在颜色 class 的 id: 处看到 'BlueAccent' 并将其与 RubricItem class 列表中的 id: 进行比较,并在 RubricItem [=] 的同一列表中看到颜色值=31=] 和我的 rubricColor: 颜色列表中的值 class,从 RubricItem class.
列表中获取颜色值
希望你明白我的意思。
我很难解释。
RubricItem
class:
class _RubricItemState extends State<RubricItem> {
final List<Rubric> rubrics = [
Rubric(
id: 'BlueAccent',
title: "BLUEACCENT",
color: Colors.blueAccent,
icon: 'assets/icons/blueAC.png',
),
Rubric(
id: "Pink",
title: "PINK",
color: Colors.pinkAccent,
icon: 'assets/icons/PINK.png',
),
Rubric(
id: 'GreenAccent',
title: "GREENACCENT",
color: Colors.greenAccent,
icon: 'assets/icons/GreenAccent.png',
),
];
...
颜色列表 classes:
final List<Colorr> colors = [
Colorr(
id: 'BlueAccent', // with this id he should be find the id in the List of the RubricItem() class
title: 'Blabla',
rubric: '',
rubricColor: , //(RubricItemColor)
),
];
使用地图而不是列表。
map<String, Rubric>
map<String, Colorr>
字符串是 ID。然后只需使用 ids
Edit1:例子
我不知道这是否是解决您的问题的最佳方法,但它确实有效。
我使用地图的键作为 ID,并从 Rubric class 和 Colorr class 中删除了 ID。
import 'package:flutter/material.dart';
void main() {
final Map<String,Rubric> rubrics = {
'BlueAccent': Rubric(title:'BLUEACCENT',color: Colors.blueAccent, icon: 'assets/icons/blueAC.png'),
};
final Map<String, Colorr> colors = {
'BlueAccent': Colorr(title: 'title', rubric:rubrics['BlueAccent'],rubricColor: rubrics['BlueAccent'].color),
};
}
class Rubric{
Rubric({this.title,this.icon,this.color});
final String title;
final Color color;
final String icon;
}
class Colorr{
Colorr({this.title,this.rubric,this.rubricColor});
final String title;
final Rubric rubric;
final Color rubricColor;
}
我想访问另一个 class (class RubricItem) 中的列表中的数据。颜色必须是对应id的颜色
然后我想将我从 RubricItem class 调用的列表中的数据插入到颜色 class 中的列表中。在 Colors class 中是参数 id :.根据我输入的 ID,我的 "rubricColor:" 应该知道它的值应该是多少。
示例:
我从Colorsclass'BlueAccent'中记下list的id值,那么他也得知道rubricColor:里面要写什么颜色。他在颜色 class 的 id: 处看到 'BlueAccent' 并将其与 RubricItem class 列表中的 id: 进行比较,并在 RubricItem [=] 的同一列表中看到颜色值=31=] 和我的 rubricColor: 颜色列表中的值 class,从 RubricItem class.
列表中获取颜色值希望你明白我的意思。 我很难解释。
RubricItem
class:
class _RubricItemState extends State<RubricItem> {
final List<Rubric> rubrics = [
Rubric(
id: 'BlueAccent',
title: "BLUEACCENT",
color: Colors.blueAccent,
icon: 'assets/icons/blueAC.png',
),
Rubric(
id: "Pink",
title: "PINK",
color: Colors.pinkAccent,
icon: 'assets/icons/PINK.png',
),
Rubric(
id: 'GreenAccent',
title: "GREENACCENT",
color: Colors.greenAccent,
icon: 'assets/icons/GreenAccent.png',
),
];
...
颜色列表 classes:
final List<Colorr> colors = [
Colorr(
id: 'BlueAccent', // with this id he should be find the id in the List of the RubricItem() class
title: 'Blabla',
rubric: '',
rubricColor: , //(RubricItemColor)
),
];
使用地图而不是列表。
map<String, Rubric>
map<String, Colorr>
字符串是 ID。然后只需使用 ids
Edit1:例子
我不知道这是否是解决您的问题的最佳方法,但它确实有效。
我使用地图的键作为 ID,并从 Rubric class 和 Colorr class 中删除了 ID。
import 'package:flutter/material.dart';
void main() {
final Map<String,Rubric> rubrics = {
'BlueAccent': Rubric(title:'BLUEACCENT',color: Colors.blueAccent, icon: 'assets/icons/blueAC.png'),
};
final Map<String, Colorr> colors = {
'BlueAccent': Colorr(title: 'title', rubric:rubrics['BlueAccent'],rubricColor: rubrics['BlueAccent'].color),
};
}
class Rubric{
Rubric({this.title,this.icon,this.color});
final String title;
final Color color;
final String icon;
}
class Colorr{
Colorr({this.title,this.rubric,this.rubricColor});
final String title;
final Rubric rubric;
final Color rubricColor;
}