所以我正在嘗試制作一個應用程式,讓用戶填寫幾個表單欄位并在用戶提交表單時處理資訊。我的問題是我似乎不知道如何使Form可滾動(因為它很長并且會導致 RenderFlex 錯誤)。我包裝它的任何可滾動小部件仍然會導致 RenderFlex 錯誤。它滾動的唯一時間是當我用 a 包裹它時,ListView它也會導致 RenderFlex 錯誤,最糟糕的是,由于某種原因,當我嘗試滾動到底部以點擊按鈕提交時,滾動恢復正常。我已經嘗試了How to scroll page in flutter和Flutter - How to make a column screen scrollable中的大多數解決方案,但它們似乎都不起作用。以下是表單的結構:
- Form
- Column (List of input fields, crossAxisAlignment = CrossAxisAlignment.start)
- Padding (Input field, top padding of 12)
- Column (Text input field)
- Align (alignment = Alignment.centerLeft)
- Padding (Left padding 8)
- Text (Field title)
- Padding (Symmetric horizontal padding of 8)
- TextFormField (Text input)
- Seven more input fields with the same structure (Padding > Column > Align > ...)
- Padding (Vertical padding of 64)
- Align (center alignment)
- FractionallySizedBox (for 75% width)
- SizedBox (for fixed height)
- ElevatedButton (Submit button)
- Text (Submit button text)
我希望這是足夠的資訊,如果有人可以幫助我使此表單可滾動,我將不勝感激。提前致謝!
uj5u.com熱心網友回復:
問題是當您使用Column而不指定高度時,它認為高度是無限的。嘗試用 SizedBox 包裝第一列小部件,并使用MediaQuery確定螢屏高度并將其設定為SizedBox的高度引數。
現在,用SingleScrollChildView包裝Column以使其可滾動。
例如,
SizedBox(
height: MediaQuery.of(context).size.height,
child: SingleScrollChildView(
child: Column(...),
),
),
最后,為什么您需要第二個Column用于文本和輸入欄位?你不能只使用TextField()中的InputDecoration方法并使用labelText或HelperText
uj5u.com熱心網友回復:
您可以使用 SingleChildScrollView 小部件。
uj5u.com熱心網友回復:
您可以使用小部件并將SingleChildScrollView其包裝起來,Container并為其提供一定的高度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/483792.html
上一篇:角度形式相同的行欄位
下一篇:角形模式切換
