我有一个非常简单的Xamarin.Forms应用程序. Xaml是一个包含一列和两行的网格.第一行包含Entry控件.第二行包含Scrollview,其中包含一个Editor控件(多行文本框).第二行的高度是*. Scrollview VerticalOptions设置为FillAndExpand.
编辑器需要在填满时滚动.第一个条目应该保持原样.
在Android上,Editor控件按预期工作,它在完全启动时滚动.但是在iOS上,只要键盘弹出,编辑器就会向上滚动,将光标向上移开.当它只有几行文字时它也会向上滚动,所以它们就会消失.在iPhone模拟器和物理设备上会出现此问题.
我已经在Scrollview,网格和入口控件上尝试了所有verticaloptions的组合.没有什么能阻止不必要的滚动.
我无法将ScrollView放在整个网格中,因为我需要第一个条目保持可见.
我还不能在这个网站上添加图片,所以这里有一个布局链接:
image link
花哨的颜色只是让我可以看到每个控件开始结束的地方.
我正在使用截至2016年1月的所有内容的最新版本.
<Grid Padding="5,5,5,5" RowSpacing="5" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" BackgroundColor="White" >
<!--One colum-->
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!--- 2 rows (0-1). 0=title, 1=body-->
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- row 0 Title -->
<Entry x:Name="txtTitle" Grid.Row="0" Grid.Column="0" BackgroundColor="Gray" TextColor="Black" />
<!-- row 1 Editor -->
<ScrollView Grid.Row="1" Grid.Column="0" BackgroundColor="Red" Padding="5,5,5,5" >
<!--Making the Editor FillAndExpand makes no difference-->
<Editor x:Name="txtBody" Grid.Row="1" Grid.Column="0" BackgroundColor="Olive"/>
<!-- -->
</ScrollView>
</Grid>
最佳答案 进一步更新.我发现Editor控件有自己的滚动.所以我已经删除了它周围的ScrollView.问题仍然存在.一旦编辑器中的文本具有比编辑器高度更多的行,您就无法向下滚动到编辑模式中的最后一行.如果您只想查看文本就可以了,但只要点击屏幕将其置于编辑模式,就无法进入最后一行.我已将其部署到iPhone 4(作为最低标准)并拍摄了一个屏幕截图.请参阅绿色编辑器底部的1111111?下面有更多文字,但您无法在编辑模式下访问它.同样的事情发生在模拟器和iPad 3上.
iPhone4 Screenshot
这似乎是Xamarin编辑控制的一个根本缺陷.有人可以确认这是否正在解决或是否有解决方法?