#flutter
#flutter
Вопрос:
Я новичок в flutter, поэтому, пожалуйста, потерпите меня. Когда я внедряю an app bar
, иногда у него есть только заголовок, в другой раз у него есть заголовок и кнопка возврата слева от bar
, кроме того, иногда он добавляет еще одну кнопку справа от bar
. Мне приходится компоновать по-разному, чтобы соответствовать разным ситуациям, что довольно хлопотно. Есть ли удобный виджет, который предоставляет три дополнительных свойства, позволяющие мне устанавливать title
, left button
, и right button
или любую хорошую стратегию компоновки? То, что я сделал, приведено ниже.
AppBar(
backgroundColor: Colors.gray,
elevation: 0.0,
title: Container(
alignment: Alignment.bottomCenter,
child: Container(
margin: EdgeInsets.only(bottom: ScreenUtil.dp(11)),
height: ScreenUtil.dp(22),
width: ScreenUtil.dp(160),
child: Text(
'title',
style: TextStyle(
fontSize: ScreenUtil.sp(17), fontFamily: FontFamily.family, color: Colors.black, fontWeight: FontWeight.w600
)
),
alignment: Alignment.center,
),
),
),
),
```
Ответ №1:
Вам следует узнать больше о Appbar
с другими свойствами, чтобы помочь с такими необходимыми вещами, как начало, конец, …
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
/// This 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: MyStatelessWidget(),
);
}
}
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
final SnackBar snackBar = const SnackBar(content: Text('Showing Snackbar'));
void openPage(BuildContext context) {
Navigator.push(context, MaterialPageRoute(
builder: (BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Next page'),
),
body: const Center(
child: Text(
'This is the next page',
style: TextStyle(fontSize: 24),
),
),
);
},
));
}
/// This is the stateless widget that the main application instantiates.
class MyStatelessWidget extends StatelessWidget {
MyStatelessWidget({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
key: scaffoldKey,
appBar: AppBar(
leading: Icon(Icons.navigate_next),
title: const Text('AppBar Demo'),
centerTitle: true,
actions: <Widget>[
IconButton(
icon: const Icon(Icons.add_alert),
tooltip: 'Show Snackbar',
onPressed: () {
scaffoldKey.currentState.showSnackBar(snackBar);
},
),
IconButton(
icon: const Icon(Icons.navigate_next),
tooltip: 'Next page',
onPressed: () {
openPage(context);
},
),
],
),
body: const Center(
child: Text(
'This is the home page',
style: TextStyle(fontSize: 24),
),
),
);
}
}
Комментарии:
1. Большое вам спасибо. Я этого не осознавал, я узнаю об этом подробнее.
2. Я новичок в реальном проекте и flutter. Не могли бы вы дать мне несколько советов о том, как быстро и эффективно изучать новые знания? Кажется, что мой нынешний способ обучения немного запутанный и упускает из виду многие вещи.
3. Вы должны внимательно прочитать о том, что использовать. и просто много кода 🙂