如何避免在XAML Forms上滚动TableView?

时间:2017-04-06 04:32:15

标签: xaml user-interface xamarin.forms tableview

我有一个StackLayout,它包含一个TableView,一个Grid和一些标签。

我的问题是StackLayout强制所有元素覆盖屏幕高度的100%,并且它在我的TableView上生成垂直滚动:

enter image description here

我想删除控件中的垂直滚动,而不是整个视图的“全局”滚动。

这是该视图的XAML代码:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage Title="Create Account" 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:AudioBitts"
    x:Class="AudioBitts.SignUpPage">
    <StackLayout>
        <TableView x:Name="socialListView">
            <TableRoot>
                <TableSection Title="Social sign up">
                    <ImageCell ImageSource="{local:EmbeddedImage ResourceId=AudioBitts.Images.Icons.socialFacebook@3x.png}" Text="Sign up with Facebook" />
                    <ImageCell ImageSource="{local:EmbeddedImage ResourceId=AudioBitts.Images.Icons.socialTwitter@3x.png}" Text="Sign up with Twitter" />
                    <ImageCell ImageSource="{local:EmbeddedImage ResourceId=AudioBitts.Images.Icons.socialGoogle@3x.png}" Text="Sign up with Google+" />
                </TableSection>
                <TableSection Title="Email sign up">
                    <EntryCell Label="Email" Placeholder="Your email"/>
                    <EntryCell Label="Password" Placeholder="Min 6 characters"/>
                </TableSection>
            </TableRoot>
        </TableView>
        <Grid Padding="20" HorizontalOptions="Center" VerticalOptions="Center">
            <Grid.RowDefinitions>
                <RowDefinition Height="40" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Label Grid.Row="0" Grid.Column="0" Text="Already have an account?" />
            <Label x:Name="onSignIn" Grid.Row="0" Grid.Column="1" Text="Sign In" TextColor="#ff0030" />
        </Grid>
        <Label Text="AudioBitts Inc." HorizontalOptions="Center" /> 
        <Label Text="Terms of Use and Privacy Policy" HorizontalOptions="Center" />
    </StackLayout>
</ContentPage>

1 个答案:

答案 0 :(得分:1)

为什么不添加其他<TableSection/>,添加<ViewCell/>并添加Grid内的内容。

希望它有所帮助!