我有一個如下所示的頁面。該頁面有兩個按鈕。其中之一是將表格發送到相關地方。在我的情況下給導師。但是,這個暫時不重要。第二個按鈕很重要。無論如何,第二個是將表單保??存為草稿。所以,我知道我需要在 SQLite 中保存輸入的資料。然后當他/她想再次編輯表單時,我需要從 SQLite 中提取資料,然后填寫相關位置。這是問題。當我點擊編輯按鈕時。下面的頁面會顯示之前填寫的內容。但是,對于此任務,為編輯按鈕重新編碼下面的螢屏是沒有意義的。所以我需要重用下面的頁面。我該怎么做?任何的想法。有沒有什么有用的內容?請附上鏈接,視頻等,沒關系。我只是想學習如何去做。我希望我能解釋一下情況。如果需要更多資訊來了解情況,請隨時詢問。

uj5u.com熱心網友回復:
有很多方法可以實作您的需求。但基本上,你需要檢查是否有保存的資料?如果有保存的資料,則顯示它,否則顯示一個空頁面。簡單的例子:
class MyPageData {
String firstField;
String secondField;
// ... fields with page info
}
class MyFormPage extends StatefulWidget {
@override
State<StatefulWidget> createState() => _MyForPageState();
}
class _MyForPageState extends State<MyFormPage>{
MyPageData _savedData;
@override
void initState() {
super.initState();
_savedData = loadDataFromDb();
}
@override
Widget build(BuildContext context) {
String myFirstField = "";
String mySecondField = "";
// other fields
if (_savedData != null){
myFirstField = _savedData.firstField;
mySecondField = _savedData.secondField;
// other fields
}
// render page with fields values above
}
}
這MyPageData是頁面上所有資料的模型。所以更容易合作。此外,這些資料會保存到 db 并在將來從 db 恢復。
MyFormPage是表單頁面的有狀態小部件。有一種loadDataFromDb方法可以用來加載保存的資料。然后在build方法中,我們檢查是否有保存的資料。如果有資料,我們為頁面上的所有欄位填充初始值,并將這些欄位用作構建頁面的小部件的初始值。所以,如果沒有保存的資料,然后_savedData將null所有部件將空的初始值。
uj5u.com熱心網友回復:
如果您將頁面放在這樣的小部件中
class MyPage extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
body: // your page here
)
}
}
您可以在不同的位置打開它。
_onButton1Click(BuildContext context){
// do something button 1 specific
final route = MaterialPageRoute(builder: (context) => MyPage());
Navigator.of(context).push(route);
}
_onButton2Click(BuildContext context){
// do something button 2 specific
final route = MaterialPageRoute(builder: (context) => MyPage());
Navigator.of(context).push(route);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/401650.html
下一篇:無法在顫振中打開.pem檔案
