ScrollView在xamarin.forms

时间:2017-10-10 23:53:14

标签: android xaml mobile layout xamarin.forms

这是我的弹出窗口:

 <!--<ScrollView>-->

  <Grid >
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="0.5*"/>
      <ColumnDefinition Width="9*"/>
      <ColumnDefinition Width="0.5*"/>
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
      <RowDefinition Height="2.3*"/>
      <RowDefinition Height="5.4*"/>
      <RowDefinition Height="2.3*"/>
    </Grid.RowDefinitions>
    <Image Source="recuperarFundo" Grid.Column="1" Grid.Row="1" Aspect="Fill" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"/>

    <Grid Grid.Column="1" Grid.Row="1" RowSpacing="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
      <Grid.RowDefinitions>
        <RowDefinition Height="3*"/>
        <RowDefinition Height="4*"/>
        <RowDefinition Height="3*"/>
      </Grid.RowDefinitions>

      <Grid Grid.Row="0" VerticalOptions="CenterAndExpand">
        <Image Source="cadastrarVoltar" Margin="20,0,0,0" Grid.Column="0" Grid.Row="0" VerticalOptions="Start" HorizontalOptions="Start">
          <!--<Image.Margin>
            <OnPlatform x:TypeArguments="Thickness"
                     Android="20,0,0,0"
                     iOS="20,0,0,0"/>
          </Image.Margin>-->
          <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="OnClose"/>
          </Image.GestureRecognizers>
        </Image>

        <Image Source="loginlogo" Margin="0,10,0,10" Grid.Column="0" Grid.Row="0" VerticalOptions="Center" HorizontalOptions="Center"/>

      </Grid>

      <Grid Grid.Row="1" VerticalOptions="CenterAndExpand">

        <Image Source="recuperarForms" Aspect="Fill" Grid.Column="0" Grid.Row="0" Margin="20,0,20,0"/>

        <Grid Grid.Column="0" Grid.Row="0" RowSpacing="0" Padding="25,0,25,0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
          <Grid.RowDefinitions>
            <RowDefinition Height="5*"/>
            <RowDefinition Height="5*"/>
          </Grid.RowDefinitions>

          <local:MyLabel x:Name="recupera_lbl" Text="Para recuperar sua senha, digite abaixo o e-mail cadastrado" Margin ="20,0,20,0" VerticalOptions="CenterAndExpand" HorizontalTextAlignment="Center" HorizontalOptions="CenterAndExpand" NamedFontSize="Small" Style="{Binding labelsfont}"/>

          <local:MyEntry x:Name="recuperar_entry" Grid.Row="1" VerticalOptions="Center" Placeholder="Seu e-mail" TextColor="{StaticResource MarromClaro}" PlaceholderColor="{StaticResource MarromClaro}" FontSize="Small" HorizontalOptions="Fill" HorizontalTextAlignment="Center"/>

        </Grid>
      </Grid>

      <Grid Grid.Row="2" VerticalOptions="FillAndExpand">
        <ActivityIndicator Grid.Row="0" Grid.Column ="0" x:Name="recuperar_indicator" Color="DarkRed" HorizontalOptions="CenterAndExpand" IsVisible="false" IsRunning="true"/>
        <Image Grid.Row="0" Grid.Column ="0" x:Name="recuperar_button" Source="recuperarButton" HorizontalOptions="CenterAndExpand">
          <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="CallingRecuperarSenhaAsync"/>
          </Image.GestureRecognizers>
        </Image>
      </Grid>
    </Grid>

  </Grid>
 <!--</ScrollView>-->
</pages:PopupPage>

我正在使用xamarin.forms和Rg.plugin.popup ......问题是:当我打开键盘时,弹出窗口被揉捏。然后,为了解决这个问题,我把所有代码放在ScrollView中,而在其他弹出窗口中它解决了问题,但只有在这个代码在上面的弹出窗口中,当我使用scrollView时,我的布局高度被拉伸了。

没有ScrollView:

enter image description here

使用ScrollView:

enter image description here

滚动可以滚动,没有任何意义,因为我的弹出窗口很小而且没有填满屏幕,或者我看不到它比我的屏幕尺寸大...... 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我在网格中放置了'HeightRequest'并将其推入了stacklayout。我听说stacklayout只使用了nedded的大小,我不知道它是否属实,但是在这里工作。