(实战)点不到的按钮
class _MyHomePageState extends State < MyHomePage > { double btnLeft = 0 ; double btnTop = 0 ; int timeDuration = 500 ; String textButton = "点我呀" ; var s = window. physicalSize / window. devicePixelRatio; var rng = new Random ( ) @override void initState ( ) { randomPosition ( ) ; super . initState ( ) ; } randomPosition ( ) { setState ( ( ) { btnLeft = rng. nextDouble ( ) * ( s. width - 100 ) ; btnTop = rng. nextDouble ( ) * ( s. height - 40 ) ; } ) ; } @override Widget build ( BuildContext context) { return Stack ( children: [ AnimatedPositioned ( duration: Duration ( milliseconds: timeDuration) , left: btnLeft, top: btnTop, width: 100 , height: 40 , child: ElevatedButton ( onPressed: randomPosition, child: Text ( textButton) , ) ) ] , ) ; }
}
(实战)点不到的按钮修改
修改按钮的宽200和⾼80 设置背景⾊ rgb 值为 136, 138, 226 按钮文本颜⾊设置为黑⾊ 文本设置为:初次见面
class MyHomePage extends StatefulWidget { const MyHomePage ( { Key ? key, required this . title} ) : super ( key: key) ; final String title; @override State < MyHomePage > createState ( ) = > _MyHomePageState ( ) ;
} class _MyHomePageState extends State < MyHomePage > { double btnLeft = 0 ; double btnTop = 0 ; int timeDuration = 500 ; String textButton = "初次见面" ; var s = window. physicalSize / window. devicePixelRatio; var rng = Random ( ) ; var backColor = const BoxDecoration ( color: Color . fromRGBO ( 136 , 138 , 226 , 1 ) ) ; @override void initState ( ) { randomPosition ( ) ; super . initState ( ) ; } randomPosition ( ) { setState ( ( ) { btnLeft = Random ( ) . nextDouble ( ) * ( s. width - 100 ) ; btnTop = Random ( ) . nextDouble ( ) * ( s. height - 40 ) ; } ) ; } @override Widget build ( BuildContext context) { return Container ( decoration: backColor, child: Stack ( children: [ Positioned ( left: btnLeft, top: btnTop, width: 200 , height: 80 , child: ElevatedButton ( onPressed: randomPosition, child: Text ( textButton, style: const TextStyle ( color: Colors . black, ) , ) , ) ) , ] , ) , ) ; }
}