【发布时间】:2016-05-08 09:28:34
【问题描述】:
我有一个非常简单的 Xamarin.Forms 应用程序。 Xaml 是一个 Grid,具有一列和两行。第一行包含一个Entry 控件。第二行包含一个Scrollview,其中包含一个Editor 控件(多行文本框)。第二行的高度是*。 Scrollview VerticalOptions 设置为 FillAndExpand。
Editor 填满时需要滚动。第一个Entry 应该留在原处。
在 Android 上,Editor 控件按预期工作,当它填满时会滚动。但在 iOS 上,只要键盘弹出,Editor 就会向上滚动,光标会消失在视线之外。当它只有几行文本时,它也会向上滚动,因此它们会消失。此行为发生在 iPhone 模拟器和物理设备上。
我已经尝试了 Scrollview、网格和入口控件上的所有垂直选项组合。没有什么能阻止不必要的滚动。
我不能在整个网格中放置一个 ScrollView,因为我需要第一个条目保持可见。
我还不能在这个网站上添加图片,所以这里是一个布局链接:
花哨的颜色只是为了让我可以看到每个控件的开始和结束位置。 我正在使用截至 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>
【问题讨论】:
标签: ios xaml scroll xamarin.forms