-
-
Save angelabauer/83ff2026724618c4815f986743f6d70e to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart'; | |
void main() => runApp( | |
MaterialApp( | |
home: BallPage(), | |
), | |
); | |
class BallPage extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
backgroundColor: Colors.blue, | |
appBar: AppBar( | |
backgroundColor: Colors.blue.shade900, | |
title: Text('Ask Me Anything'), | |
), | |
body: Ball(), | |
); | |
} | |
} | |
class Ball extends StatefulWidget { | |
@override | |
_BallState createState() => _BallState(); | |
} | |
class _BallState extends State<Ball> { | |
@override | |
Widget build(BuildContext context) { | |
return Center( | |
child: Image.asset('images/ball1.png'), | |
); | |
} | |
} |
I tried to put a Row inside the center, but the image do not appeared.
Check if you have called the stateful widget as body of scaffold in stless
There are, of course, many ways to reach your goal.
However, I think it makes sense to use as few widgets as possible, and to clearly distinguish whether these are stateless or stateful.
For the first time all my code is totally same as Angela. I used this :
import 'package:flutter/material.dart';
void main() => runApp(
MaterialApp(
home: Ball(),
),
);
class Ball extends StatefulWidget {
@OverRide
_BallState createState() => _BallState();
}
class _BallState extends State {
@OverRide
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blue[400],
appBar: AppBar(
backgroundColor: Colors.blue,
title: Text("Ask Me Anything"),
centerTitle: true,
),
body: Center (
child: Image.asset("images/ball1.png"),
),
);
}
}
I used a container and a center widget, but container is useless.
I tried to put a Row inside the center, but the image do not appeared.
return Center(
child: Row(
children: <Widget>[
Expanded(child: Image.asset('images/ball1.png')),
],
),
);
It works for me.
import 'package:flutter/material.dart';
void main() => runApp(
MaterialApp(
home: BallPage(),
),
);
class BallPage extends StatelessWidget {
@OverRide
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blue,
appBar: AppBar(
backgroundColor: Colors.blue.shade900,
title: Text('Ask Me Anything'),
),
body: Ball(),
);
}
}
class Ball extends StatefulWidget {
@OverRide
_BallState createState() => _BallState();
}
class _BallState extends State {
@OverRide
Widget build(BuildContext context) {
return Center(
child: Image.asset('images/ball1.png'),
);
}
}
i centered the statefull widget instead. it gave the same result or so i think lol
body: Center(
child: Ball(),
),
I used the exact same method.
import 'package:flutter/material.dart';
void main() {
runApp(BallPage());
}
class BallPage extends StatelessWidget {
@OverRide
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.blueAccent,
appBar: AppBar(
backgroundColor: Colors.blue,
title: Center(
child: Text('Ask me everything'),
),
),
body: Ball(),
),
);
}
}
class Ball extends StatefulWidget {
@OverRide
_BallState createState() => _BallState();
}
class _BallState extends State {
@OverRide
Widget build(BuildContext context) {
return Center(
child: Image.asset('images/ball1.png'),
);
}
}
import 'package:flutter/material.dart';
void main() => runApp(
MaterialApp(
home: BallPage(),
),
);
class BallPage extends StatelessWidget {
@OverRide
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blue,
appBar: AppBar(
title: Center(
child: Text('Ask Me Anything'),
),
backgroundColor: Colors.blue.shade900,
),
body: Ball(),
);
}
}
class Ball extends StatefulWidget {
@OverRide
_BallState createState() => _BallState();
}
class _BallState extends State {
@OverRide
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Image.asset('images/ball1.png'),
),
],
);
}
}
I did it this way.
`import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
home: BallPage(),
),
);
}
class BallPage extends StatelessWidget {
const BallPage({Key? key}) : super(key: key);
@OverRide
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blue,
appBar: AppBar(
backgroundColor: Colors.blue.shade900,
title: Center(child: Text('Ask Me anything!')),
),
body: Center(child: Ball()),
);
}
}
class Ball extends StatefulWidget {
const Ball({Key? key}) : super(key: key);
@OverRide
State createState() => _BallState();
}
class _BallState extends State {
@OverRide
Widget build(BuildContext context) {
return Image(image: AssetImage('images/ball1.png'));
}
}
`
is it cool to just return the image without creating a child?
What is the diference? AssetImage vs Image.asset
body: const Center(
child: Image(
image: AssetImage('images/ball1.png'),
)));
or
return Center(
child: Image.asset('images/ball1.png'),
);
What is the diference? AssetImage vs Image.asset
body: const Center( child: Image( image: AssetImage('images/ball1.png'), )));
or
return Center( child: Image.asset('images/ball1.png'), );
https://stackoverflow.com/questions/53309622/what-is-the-difference-between-assetimage-and-image-asset-flutter
check ur answer here
simple like that
`
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
home: EightBall(),
));
}
class EightBall extends StatefulWidget {
const EightBall({Key? key}) : super(key: key);
@OverRide
State createState() => _EightBallState();
}
class _EightBallState extends State {
@OverRide
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blue.shade800,
appBar: AppBar(
backgroundColor: Colors.indigo.shade900,
title: Text('magic ball - ask me anything'),
),
body: Container(
child: Center(
child: Image.asset('images/ball1.png'),
),
),
);
}
}
`
Below is my solution and it is working as expected.
import 'dart:math';
import 'package:flutter/material.dart';
void main() {
return runApp(
MaterialApp(
home: Scaffold(
backgroundColor: Colors.blueAccent,
appBar: AppBar(
backgroundColor: Colors.indigo.shade800,
centerTitle: true,
title: const Text(
'Ask Me Anything',
style: TextStyle(
fontSize: 35.0,
),
),
),
body: const BallPage(),
),
),
);
}
class BallPage extends StatefulWidget {
const BallPage({Key? key}) : super(key: key);
@OverRide
State createState() => _BallPageState();
}
class _BallPageState extends State {
int ballNumber = 1;
@OverRide
Widget build(BuildContext context) {
return Center(
child: TextButton(
onPressed: () {
setState(() {
ballNumber = Random().nextInt(5) + 1;
});
},
child: Image(
image: AssetImage('images/ball$ballNumber.png'),
),
),
);
}
}
import 'package:flutter/material.dart';
void main() => runApp(
MaterialApp(
home: BallPage(),
),
);
class BallPage extends StatelessWidget {
@OverRide
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blue,
appBar: AppBar(
backgroundColor: Colors.blue.shade900,
title: Text('Ask Me Anything'),
),
body: Ball(),
);
}
}
class Ball extends StatefulWidget {
@OverRide
_BallState createState() => _BallState();
}
class _BallState extends State {
@OverRide
Widget build(BuildContext context) {
return Center(
child: Image.asset('images/ball1.png'),
);
}
}
I made it with a container, but in the solution just used the Center widget, is there any difference if use a container in between?