skip to Main Content

enter image description here
Lists of color and names i want to build an app that will change color and text on tap. I want to change the container color and the text which are displayed on a list and randomize both of them. How can i do that?Here i want to change randomize both of them and get on tap
enter image description here
enter image description here

3

Answers


  1. this will give you random color

    Color(0xFF000000+Random().nextInt(0xFFFFFF))
    
    Login or Signup to reply.
  2. you can get random item from the list by using below code,

    var randomName = names.elementAt(Random().nextInt(names.length)
    

    use randomName and update in setState()

    Login or Signup to reply.
  3. You can change the name and color by tapping on the screen

    import 'package:flutter/material.dart';
    import "dart:math";
    
    void main() => runApp(MyApp());
    
    /// This Widget is the main application widget.
    class MyApp extends StatelessWidget {
      static const String _title = 'Flutter Code Sample';
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: _title,
          home: HomeScreen(),
        );
      }
    }
    
    List<String> names = [
      'John',
      'Maria',
      'Mike',
      'ABC',
      'ABCDEF',
      'XYZ',
      'ZXY',
    ];
    
    List<Color> colors = [
      Colors.amber,
      Colors.grey,
      Colors.white,
      Colors.yellow,
      Colors.green,
    ];
    
    
    class HomeScreen extends StatefulWidget {
      const HomeScreen({super.key});
    
      @override
      State<HomeScreen> createState() => _HomeScreenState();
    }
    
    class _HomeScreenState extends State<HomeScreen> {
      String? randomName;
      Color? randomColor;
    
      @override
      Widget build(BuildContext context) {
        final random = new Random();
        randomName = names[random.nextInt(names.length)];
        randomColor = colors[random.nextInt(colors.length)];
        return Scaffold(
          body: GestureDetector(
            onTap: () {
              setState(() {
                randomName = names[random.nextInt(names.length)];
                randomColor = colors[random.nextInt(colors.length)];
              });
            },
            child: Container(
              color: randomColor, 
              child: Center(
                child: Text(randomName!),
              )
            ),
          )
        );
      }
    }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search