出于性能考慮刊头,ListView.separated每次進入都會加載,因此api要求必須要設(shè)置大小诸尽,解決方法是(注意情況:不要在build內(nèi)部運算或刷新原杂,因為listview 每次進入都會刷新,這樣會大幅度占用內(nèi)存)
Expanded(
child:{})
provider狀態(tài)無改變的時候
Consumer(builder: (
BuildContext context,
RemindModel value,
Widget? child,
) {})
Row的平分布局
用 Expanded 包裹 row 里的每個組件:
Row(
children: [
Expanded(child: Text()),
Expanded(child: Text()),
Expanded(child: Text()),
],
)
pub get 后本地的代碼沒有更新您机,重新get也不會改變
pub get 后沒有更新
1. 本地的 pubspec.lock 鎖定了版本穿肄,刪除掉, 重新 pub get
2. 指定 ref 版本
進入app,就設(shè)置整個app為豎屏顯示
void main() {
WidgetsFlutterBinding.ensureInitialized(); //不加這個強制橫/豎屏?xí)箦e
SystemChrome.setPreferredOrientations([
// 強制豎屏
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown
]);
runApp(const DemoApp());
}
WidgetsFlutterBinding.ensureInitialized();這行代碼一定要寫际看,要不然就報錯咸产,而且設(shè)置也無效
當(dāng)進入某個頁面時控制橫豎屏顯示
強制豎屏,代碼如下:
// 強制豎屏
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown
]);
強制橫屏仲闽,代碼如下:
// 強制橫屏
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight
]);
退出這個頁面時脑溢,恢復(fù)豎屏顯示,代碼如下:
@override
void dispose() {
// 強制豎屏
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown
]);
super.dispose();
}
list轉(zhuǎn)string
String? result;
<String>["a","b","c"].forEach((e) {
if (result == null) {
result = e.name;
} else {
result = "${e.name},${result}";
};
});
自適應(yīng)高度控件
IntrinsicHeight();