2017-12-07 4 views
0

Ich bin auf der aktuellsten Version von Xamarin Forms. Ich habe eine Inhaltsseite. Die Inhaltsseite verfügt über ein Raster mit einer Bildlaufansicht mit einem Stapellayout, das einige Bild- und Eingabeeingaben sowie einige Schaltflächen enthält. Wenn ich den Eintrag berühre, um Text einzugeben, bedeckt die Tastatur die Tasten, so dass ich die Taste nicht drücken kann. Dies ist nicht scrollbar und ich weiß nicht warum. Kann mir jemand helfen?Xamarin Formulare: ScrollView mit Keyboard

Hier ist mein XAML-Code:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     x:Class="Spirocco.LoginPage"> 
<Grid> 
    <ScrollView Orientation="Both" x:Name="scrollView"> 
     <ScrollView.Content> 
      <StackLayout BackgroundColor="#302138"> 
       <Image Source="login_logo" Margin="0,0,0,0"></Image> 
       <StackLayout BackgroundColor="White" Margin="20,0,20,30"> 
        <Label Text="ÜDVÖZÖLJÜK!" FontSize="30" FontFamily="Comic Sans MS" Margin="0,15,0,0" TextColor="#302138" HorizontalTextAlignment="Center"></Label> 
        <Entry Text="{Binding Email}" Placeholder="E-mail" Margin="40,0,40,0" Keyboard="Email"/> 
        <Entry Text="{Binding Password}" Placeholder="Jelszó" IsPassword="True" Margin="40,0,40,0"/> 
        <Button Text="BEJELENTKEZÉS" Clicked="Login" TextColor="White" BackgroundColor="#302138" Margin="40,10,40,0"/> 
        <Button Text="REGISZTRÁCIÓ" Clicked="Register" TextColor="White" BackgroundColor="#302138" Margin="40,0,40,25"/> 
       </StackLayout> 
      </StackLayout> 
     </ScrollView.Content> 
    </ScrollView> 
</Grid> 

Here is the solution

+0

Was wollen Sie scrollbaren sein? Im Moment ist alles im Raster, was Sie scrollen möchten. Die Elemente innerhalb können einander überlappen, ohne scrollbar zu sein, weil nur die gesamte Gruppe von Elementen ist. – Neepsnikeep

+0

Ich möchte alle Seite scrollbar sein. Wenn ich versuche, mein Passwort einzugeben, kann ich die Login-Taste nicht berühren, weil sie von der Tastatur abgedeckt wurde. Ich möchte den gesamten Inhalt nach unten scrollen und den Login Button berühren. Sry mein Englisch ist nicht zu gut. – totesz09

+0

Ich denke, Sie müssen ' ...' nur durch ' ...' ersetzen. Das Raster kann so groß sein, wie es sein muss, unabhängig von der Größe des Darstellungsbereichs. Die ContentPage weiß jedoch, was zu tun ist, wenn das ** direkte ** Kind eine ScrollView ist. Ich kann das nicht testen, also poste ich es nicht als Antwort. – Neepsnikeep

Antwort

0

The Solution is Here

Es war nicht scrollbaren weil in der stacklayout nicht genug Inhalt hat. Ich kann das tun. Dies ist keine sehr nette Lösung, aber funktioniert. Ich habe eine Etikettenbreite HeighRequest und die gleiche Farbe mit StackLayout und jetzt ist die Seite scrollbar, wenn ich mein Passwort eintippe.

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     x:Class="Spirocco.LoginPage"> 
<ContentPage.Content> 
    <ScrollView Orientation="Both" x:Name="scrollView"> 
     <ScrollView.Content> 
      <StackLayout BackgroundColor="#302138"> 
       <Image Source="login_logo" Margin="0,0,0,0"></Image> 
       <StackLayout BackgroundColor="White" Margin="20,0,20,30"> 
        <Label Text="ÜDVÖZÖLJÜK!" FontSize="30" FontFamily="Comic Sans MS" Margin="0,15,0,0" TextColor="#302138" HorizontalTextAlignment="Center"></Label> 
        <Entry Text="{Binding Email}" Placeholder="E-mail" Margin="40,0,40,0" Keyboard="Email"/> 
        <Entry Text="{Binding Password}" Placeholder="Jelszó" IsPassword="True" Margin="40,0,40,0"/> 
        <Button Text="BEJELENTKEZÉS" Clicked="Login" TextColor="White" BackgroundColor="#302138" Margin="40,10,40,0"/> 
        <Button Text="REGISZTRÁCIÓ" Clicked="Register" TextColor="White" BackgroundColor="#302138" Margin="40,0,40,25"/> 
       </StackLayout> 
       <Label BackgroundColor="#302138" HeightRequest="160"/> 
      </StackLayout> 
     </ScrollView.Content> 
    </ScrollView> 
</ContentPage.Content> 

+0

Hat jemand eine schönere Lösung? – totesz09

0

standardmäßig Zeilenhöhe Wert Raster wird zu '*' gleich sein und damit den Platz, um alle auf dem Bildschirm nehmen . Deshalb ist es nicht scrollbar.

Übrigens, ich verstehe nicht wirklich, warum Sie in ein Raster nisten.

Try this:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="Spirocco.LoginPage"> 

<ScrollView Orientation="Both" x:Name="scrollView"> 
    <ScrollView.Content> 
     <StackLayout BackgroundColor="#302138"> 
      <Image Source="login_logo" Margin="0,0,0,0"></Image> 
      <StackLayout BackgroundColor="White" Margin="20,0,20,30"> 
       <Label Text="ÜDVÖZÖLJÜK!" FontSize="30" FontFamily="Comic Sans MS" Margin="0,15,0,0" TextColor="#302138" HorizontalTextAlignment="Center"></Label> 
       <Entry Text="{Binding Email}" Placeholder="E-mail" Margin="40,0,40,0" Keyboard="Email"/> 
       <Entry Text="{Binding Password}" Placeholder="Jelszó" IsPassword="True" Margin="40,0,40,0"/> 
       <Button Text="BEJELENTKEZÉS" Clicked="Login" TextColor="White" BackgroundColor="#302138" Margin="40,10,40,0"/> 
       <Button Text="REGISZTRÁCIÓ" Clicked="Register" TextColor="White" BackgroundColor="#302138" Margin="40,0,40,25"/> 
      </StackLayout> 
     </StackLayout> 
    </ScrollView.Content> 
</ScrollView> 
+0

ScrollView benötigt ein Elternteil. Oder ich habe Sequent Enthält keinen passenden Elementfehler. – totesz09

Verwandte Themen