У кого-нибудь есть более приятное решение?

ользую самую последнюю версию форм Xamarin. У меня есть страница контента. Страница содержимого имеет сетку с видом прокрутки, имеющим макет стека, который содержит некоторые изображения и входные данные, а также некоторые кнопки. Когда я нажимаю «Ввод» для ввода текста, клавиатура закрывает кнопки, поэтому я не могу нажать кнопку. Это не прокручивается, и я не знаю почему. Кто-нибудь может мне помочь?

Вот мой код XAML:

<?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>

Вот решение

 totesz0907 дек. 2017 г., 12:18
Я хочу прокручивать всю страницу. Когда я пытаюсь ввести свой пароль, я не могу нажать кнопку «Вход», потому что клавиатура закрыла его. Я хочу прокрутить все содержимое вниз и могу нажать кнопку входа. Sry мой английский не очень хорошо.
 Neepsnikeep07 дек. 2017 г., 12:15
Что вы хотите прокручивать? Прямо сейчас все в сетке - это то, что вы хотите прокрутить. Элементы внутри могут перекрывать друг друга без возможности прокрутки, потому что есть только вся группа элементов.
 Neepsnikeep07 дек. 2017 г., 13:41
Я думаю, вам нужно только заменить<Grid>...</Grid> с участием<ContentPage.Content>...</ContentPage.Content>, Сетка может быть настолько большой, насколько это необходимо, независимо от размера области просмотра. ContentPage, однако, знает, что делать, когданепосредственный child - это ScrollView. Я не могу проверить это, поэтому я не публикую это как ответ.

Ответы на вопрос(3)

Решение Вопроса

азмера страницы

using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;

public partial class App : Xamarin.Forms.Application
{
    public App ()
    {
        Xamarin.Forms.Application.Current.On<Xamarin.Forms.PlatformConfiguration.Android>().UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize);
        InitializeComponent();

        MainPage = new NavigationPage(new LoginTabsPage()){
        ...

*' и, следовательно, будет занимать все пространство на экране. Вот почему он не прокручивается.

Кстати, я не совсем понимаю, почему вы вкладываетесь в сетку.

Попробуй это:

<?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>
 totesz0907 дек. 2017 г., 13:11
ScrollView нужен родитель. Или я получил ошибку Sequent Contains Nole Element Element.

Решение здесь

Он не был прокручиваемым, потому что в стеке не хватает контента. Я смог сделать это. Это не очень хорошее решение, но работает. Я поставил метку ширины HeighRequest и того же цвета с StackLayout, и теперь страница набирается прокруткой, когда я набираю свой пароль.

<?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>

 totesz0907 дек. 2017 г., 13:10
У кого-нибудь есть более приятное решение?

Ваш ответ на вопрос