.NET MAUI中Entry获焦时TableView对应ViewCell塌陷问题
.NET MAUI TableView Entry获焦后ViewCell塌陷问题解决
我在.NET MAUI中使用TableView渲染数据编辑表单时遇到问题:当Entry控件获得焦点时,对应的ViewCell会塌陷,仅保留分区标题和分隔线可见。尝试给Grid和Entry设置固定高度后问题依旧。
相关代码如下:
<TableView Intent="Data"> <TableRoot> <TableSection Title="Details"> <ViewCell> <Grid ColumnDefinitions="0.5*,0.5*"> <Label Text="Manufacturer" /> <Entry Text="{Binding Manufacturer}" Grid.Column="1" /> </Grid> </ViewCell> </TableSection> </TableRoot> </TableView>
以下是几个可行的解决方向:
- 直接给ViewCell设置高度约束,这是最直接的解决方案,确保单元格有固定或最小高度:
<ViewCell Height="60" MinimumHeightRequest="60">
单独设置Grid或Entry的高度往往无效,ViewCell自身的高度限制才是关键。
- 关闭TableView的虚拟化功能。如果你的表单数据量不大,虚拟化反而可能导致高度计算异常:
<TableView Intent="Data" IsVirtualizing="False">
- 调整Entry的垂直布局选项,确保它在单元格内正确填充,避免获焦后布局收缩:
<Entry Text="{Binding Manufacturer}" Grid.Column="1" VerticalOptions="Center" />
也可以尝试VerticalOptions="FillAndExpand",根据实际布局需求选择。
- 针对Android平台,在
AndroidManifest.xml的<activity>标签中添加软键盘适配配置,防止布局被挤压:
android:windowSoftInputMode="adjustResize"
这个设置会让页面布局在软键盘弹出时自动调整大小,避免单元格被压缩。
内容的提问来源于stack exchange,提问作者Ted Nyberg
相关产品推荐
相关产品推荐

