Flutter: Clase para ListView y ExpansioTtile -- flutter campo con user-interface campo con listview campo con expandablelistview camp Relacionados El problema

Flutter: Class for listview and expansionTile


-1
vote

problema

Español

Estoy siguiendo la solución sugerida de Cómo crear LISTVIALMISTA ESPANCIALIZAJE EN SUPOSITIVO < / a> Como a continuación:

  void main() => runApp(new MaterialApp(home: new MyApp(), debugShowCheckedModeBanner: false,),);  class MyApp extends StatefulWidget {   @override   _MyAppState createState() => new _MyAppState(); }  class _MyAppState extends State<MyApp> {   @override   Widget build(BuildContext context) {     return new Scaffold(       body: new ListView.builder(         itemCount: vehicles.length,         itemBuilder: (context, i) {           return new ExpansionTile(             title: new Text(vehicles[i].title, style: new TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold, fontStyle: FontStyle.italic),),             children: <Widget>[               new Column(                 children: _buildExpandableContent(vehicles[i]),               ),             ],           );         },       ),     );   }    _buildExpandableContent(Vehicle vehicle) {     List<Widget> columnContent = [];      for (String content in vehicle.contents)       columnContent.add(         new ListTile(           title: new Text(content, style: new TextStyle(fontSize: 18.0),),           leading: new Icon(vehicle.icon),         ),       );      return columnContent;   } }  class Vehicle {   final String title;   List<String> contents = [];   final IconData icon;    Vehicle(this.title, this.contents, this.icon); }  List<Vehicle> vehicles = [   new Vehicle(     'Bike',     ['Vehicle no. 1', 'Vehicle no. 2', 'Vehicle no. 7', 'Vehicle no. 10'],     Icons.motorcycle,   ),   new Vehicle(     'Cars',     ['Vehicle no. 3', 'Vehicle no. 4', 'Vehicle no. 6'],     Icons.directions_car,   ), ];   

¿Cómo modificar el "vehículo de clase" para agregar información como año y color? La información del año y el color utilizará "ONTAP" para mostrar / usar en una nueva pantalla

gracias

Original en ingles

i am following the suggested solution from How to create Expandable ListView in Flutter as below:

void main() => runApp(new MaterialApp(home: new MyApp(), debugShowCheckedModeBanner: false,),);  class MyApp extends StatefulWidget {   @override   _MyAppState createState() => new _MyAppState(); }  class _MyAppState extends State<MyApp> {   @override   Widget build(BuildContext context) {     return new Scaffold(       body: new ListView.builder(         itemCount: vehicles.length,         itemBuilder: (context, i) {           return new ExpansionTile(             title: new Text(vehicles[i].title, style: new TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold, fontStyle: FontStyle.italic),),             children: <Widget>[               new Column(                 children: _buildExpandableContent(vehicles[i]),               ),             ],           );         },       ),     );   }    _buildExpandableContent(Vehicle vehicle) {     List<Widget> columnContent = [];      for (String content in vehicle.contents)       columnContent.add(         new ListTile(           title: new Text(content, style: new TextStyle(fontSize: 18.0),),           leading: new Icon(vehicle.icon),         ),       );      return columnContent;   } }  class Vehicle {   final String title;   List<String> contents = [];   final IconData icon;    Vehicle(this.title, this.contents, this.icon); }  List<Vehicle> vehicles = [   new Vehicle(     'Bike',     ['Vehicle no. 1', 'Vehicle no. 2', 'Vehicle no. 7', 'Vehicle no. 10'],     Icons.motorcycle,   ),   new Vehicle(     'Cars',     ['Vehicle no. 3', 'Vehicle no. 4', 'Vehicle no. 6'],     Icons.directions_car,   ), ]; 

How to modify the "class Vehicle" to add info like year and color? The year and color info will be use "onTap" to show/use in new screen

Thanks

           

Lista de respuestas

0
 
vote

para agregar año y color a la clase Modificar a su clase de vehículo como a continuación,

      public decimal Value1     {         get { return (decimal)GetValue(Value1Property); }         set { SetValue(Value1Property, value); }     }     public static readonly DependencyProperty Value1Property =         DependencyProperty.Register("Value1", typeof(decimal), typeof(MyVM),              new PropertyMetadata(0m, (d, e) =>             {                 var vm = d as MyVM;                 vm.TotalValue = e.NewValue + vm.Value2;             }));      public decimal Value2     {         get { return (decimal)GetValue(Value2Property); }         set { SetValue(Value2Property, value); }     }     public static readonly DependencyProperty Value2Property =         DependencyProperty.Register("Value2", typeof(decimal), typeof(MyVM),              new PropertyMetadata(0m, (d, e) =>             {                 var vm = d as MyVM;                 vm.TotalValue = e.NewValue + vm.Value1;             })); 4  

Es bueno hacer que sus parámetros constructores public decimal Value1 { get { return (decimal)GetValue(Value1Property); } set { SetValue(Value1Property, value); } } public static readonly DependencyProperty Value1Property = DependencyProperty.Register("Value1", typeof(decimal), typeof(MyVM), new PropertyMetadata(0m, (d, e) => { var vm = d as MyVM; vm.TotalValue = e.NewValue + vm.Value2; })); public decimal Value2 { get { return (decimal)GetValue(Value2Property); } set { SetValue(Value2Property, value); } } public static readonly DependencyProperty Value2Property = DependencyProperty.Register("Value2", typeof(decimal), typeof(MyVM), new PropertyMetadata(0m, (d, e) => { var vm = d as MyVM; vm.TotalValue = e.NewValue + vm.Value1; })); 5 para evitar la confusión más adelante, o también puede hacerlos public decimal Value1 { get { return (decimal)GetValue(Value1Property); } set { SetValue(Value1Property, value); } } public static readonly DependencyProperty Value1Property = DependencyProperty.Register("Value1", typeof(decimal), typeof(MyVM), new PropertyMetadata(0m, (d, e) => { var vm = d as MyVM; vm.TotalValue = e.NewValue + vm.Value2; })); public decimal Value2 { get { return (decimal)GetValue(Value2Property); } set { SetValue(Value2Property, value); } } public static readonly DependencyProperty Value2Property = DependencyProperty.Register("Value2", typeof(decimal), typeof(MyVM), new PropertyMetadata(0m, (d, e) => { var vm = d as MyVM; vm.TotalValue = e.NewValue + vm.Value1; })); 6 .

Para obtener más información sobre los parámetros nombrados y los parámetros opcionales cheque este .

Ahora puede agregar datos a su lista

      public decimal Value1     {         get { return (decimal)GetValue(Value1Property); }         set { SetValue(Value1Property, value); }     }     public static readonly DependencyProperty Value1Property =         DependencyProperty.Register("Value1", typeof(decimal), typeof(MyVM),              new PropertyMetadata(0m, (d, e) =>             {                 var vm = d as MyVM;                 vm.TotalValue = e.NewValue + vm.Value2;             }));      public decimal Value2     {         get { return (decimal)GetValue(Value2Property); }         set { SetValue(Value2Property, value); }     }     public static readonly DependencyProperty Value2Property =         DependencyProperty.Register("Value2", typeof(decimal), typeof(MyVM),              new PropertyMetadata(0m, (d, e) =>             {                 var vm = d as MyVM;                 vm.TotalValue = e.NewValue + vm.Value1;             })); 7  

y cuando desea agregar los datos a la lista, simplemente llame a esta línea de código, En el método ONTAP

      public decimal Value1     {         get { return (decimal)GetValue(Value1Property); }         set { SetValue(Value1Property, value); }     }     public static readonly DependencyProperty Value1Property =         DependencyProperty.Register("Value1", typeof(decimal), typeof(MyVM),              new PropertyMetadata(0m, (d, e) =>             {                 var vm = d as MyVM;                 vm.TotalValue = e.NewValue + vm.Value2;             }));      public decimal Value2     {         get { return (decimal)GetValue(Value2Property); }         set { SetValue(Value2Property, value); }     }     public static readonly DependencyProperty Value2Property =         DependencyProperty.Register("Value2", typeof(decimal), typeof(MyVM),              new PropertyMetadata(0m, (d, e) =>             {                 var vm = d as MyVM;                 vm.TotalValue = e.NewValue + vm.Value1;             })); 8  
 

To Add year and Color to the class Modify Your Vehicle Class like below,

class Vehicle {   final String title;   List<String> contents = [];   final IconData icon;   int year;   Color vehicleColor;    Vehicle({this.title, this.contents, this.icon, this.year, this.vehicleColor}); } 

It is good to Make your Constructor Parameters Named Parameters to avoid confusion later, or You can also make them Positional parameters.

For More Info on Named Parameters and Optional Parameters check this.

Now You Can Easily Add data to your list

List<Vehicle> vehicles = [   new Vehicle(     title: 'Bike',     contents: [       'Vehicle no. 1',       'Vehicle no. 2',       'Vehicle no. 7',       'Vehicle no. 10'     ],     icon: Icons.motorcycle,     year: 2018,     vehicleColor: Colors.blue,   ),   new Vehicle(     title: 'Bike',     contents: [       'Vehicle no. 1',       'Vehicle no. 2',       'Vehicle no. 7',       'Vehicle no. 10'     ],     icon: Icons.motorcycle,     year: 2019,     vehicleColor: Colors.red,   ), ]; 

And When You Want to add the data into the list then simply call this line of code, in the onTap method

  vehicles.add(Vehicle(     title: 'Bike',     contents: [       'Vehicle no. 1',       'Vehicle no. 2',       'Vehicle no. 7',       'Vehicle no. 10'     ],     icon: Icons.motorcycle,     year: 2018,     vehicleColor: Colors.blue,   )); 
 
 

Relacionados problema

0  ExpandablelistView Animation al cierre de la lista expandida  ( Expandablelistview animation while closing expanded list ) 
Estoy tratando de dar animación a ExpandableListView . Logré dar animación a la lista de expansión cuando el grupo se hace clic con el siguiente código ...

0  Cómo realizar programas programáticamente ARMANDABLISTVIENTE NIÑO IMPRÍCEMENTE CLIC  ( How to programatically perform expandablelistview child item click ) 
Tengo una expandablelistView en mi opinión. He implementado su hijo, haga clic en el oyente y está funcionando perfectamente. @Override public boolean onCh...

3  Parece que no puede averiguar expandablelistadapter  ( Cant seem to figure out expandablelistadapter ) 
Estoy tratando de escribir un ejemplo simple que extrae datos externos a través de la red y presenta un server.js2 a través de un server.js3 . He intentado...

1  Cómo deshabilitar expandablelistView vertical Scrolling cuando WebView se desplaza horizontalmente  ( How to disable expandablelistview vertical scrolling when webview is scrolled ho ) 
He tomado un webview como un niño en mi lista ampliable. Cuando desplazé a la vista web horizontalmente, se enfrenta a un desplazamiento vertical de ListView....

1  Los grupos expandablelistview pegados se derrumbaron después de girar  ( Expandablelistview groups stuck collapsed after rotating ) 
Tengo un ExpandableListView respaldado por un 9988776661 y los diseños personalizados. Funciona bien, excepto por el hecho de que si gira la pantalla dos ...

0  Incrementar el valor de la visión de texto del hijo de padres particulares  ( Increment the value of textview of child of particular parent ) 
Este es el GetchildView dentro de la clase del adaptador ... public View getChildView(int parent, int child, boolean lastChild, View view, ViewGroup...

0  ¿Cómo puedo hacer cambios persistentes a los niños en una expandablelistView?  ( How can i make persistent changes to children in an expandablelistview ) 
Así que he estado tratando de usar un expandablelistView como una interfaz elegante para mi solicitud, pero continuamente no puedo extraer el comportamiento n...

0  Inflando un tablejout en una vista de lista ampliable  ( Inflating a tablelayout in an expandable list view ) 
Mi TablaYout no está inflando una vez para cada vista de los padres. En su lugar, el tablejout no se infla en absoluto para el primer padre, se infla una vez ...

1  Intercambiando a los niños entre dos listas expandibles en Android  ( Swapping children between two expandable listviews in android ) 
Tengo dos listas expandibles en mi aplicación de Android. Poblaco la primera lista de listas expandibles con un grupo que tiene seis hijos. Lo que quiero es q...

0  Disposición inflar la excepción para el fragmento  ( Layout inflate exception for fragment ) 
Estoy tratando de poner 2 fragmentos en una actividad, el fragmento inferior está dando la excepción de inflación del diseño. Por favor, ayúdame a resolver es...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos