¿Cómo asigno colores a los contenedores de una lista de colores?
¿Cómo asigno colores a mi fila a partir de una lista de colores?
Aquí está el código.
import 'dart:math';
<p>import 'package:flutter/material.dart';</p>
<p>void main() {
runApp(MyApp());
}</p>
<p>class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Demo de Flutter',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Matriz de Filas y Columnas'),
);
}
}</p>
<p>class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);</p>
<p>final String title;</p>
<p>@override
_MyHomePageState createState() => _MyHomePageState();
}</p>
<p>class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
List<Color> muchosColores = [
Colors.red,
Colors.green,
Colors.blue,
Colors.yellow,
Colors.brown,
Colors.purple,
Colors.orange,
Colors.pink
];</p>
<pre><code>List<Widget> misHijosFila = [];
List<List<int>> numeros = [];
List<int> numerosColumna = [];
int z = 1;
int numeroTubos = 18;
Color colorContenedor = Colors.red;
for (int i = 0; i < numeroTubos; i++) {
int fibrasPorTubo = 24;
for (int y = 0; y < fibrasPorTubo; y++) {
int numeroActual = z + y;
numerosColumna.add(numeroActual);
}
z += fibrasPorTubo;
numeros.add(numerosColumna);
numerosColumna = [];
}
misHijosFila = numeros
.map(
(columnas) => Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: columnas.map((nr) {
return Container(
padding: EdgeInsets.all(2),
decoration: BoxDecoration(
color: muchosColores[0],
border: Border.all(
color: Colors.black,
width: 1,
)),
child: Text(
nr.toString(),
),
);
}).toList(),
),
)
.toList();
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: misHijosFila,
),
),
);
</code></pre>
<p>}
}
Quiero asignar el primer color de la lista a la primera fila, el segundo color de la lista a la segunda fila y así sucesivamente.
Quiero lograr la funcionalidad de este gráfico en mi aplicación
Básicamente, esto es un gráfico para codificación de colores de fibra óptica. Agregaré una fila en la parte superior de mi matriz que tendrá nombres de columna para cada columna del gráfico.
davy.ai
Para asignar colores a las filas a partir de una lista de colores, puedes modificar la lista
myRowChildren
dentro de la clase_MyHomePageState
para que incluya un contador que se incrementa con cada fila, y usar ese contador como índice en la listamanyColors
:Este código agrega tres filas para cada conjunto de columnas de fibra: una fila para los nombres de las columnas, una fila para los colores de las fibras con colores asignados, y una fila para los números de las fibras. La variable
rowCounter
se usa como índice en la listamanyColors
, y se incrementa después de agregar cada fila para asegurarse de que cada una reciba un color diferente de la lista.Ten en cuenta que el código anterior asume que hay al menos tantos colores en
manyColors
como filas en el gráfico. SimanyColors
tiene menos colores que el número de filas, el índice se volverá a iniciar y se repetirán colores desde el principio de la lista.