Xamarin Forms - xamarin формирует прокрутку панели навигации на Android - PullRequest
0 голосов
/ 11 октября 2019

У меня есть простое приложение File-> New Project Xamarin Forms, только что созданное. Когда редактор получает фокус, панель навигации сдвигается вверх. Это ошибка, или как вы блокируете панель навигации на месте и вместо этого прокручиваете содержимое страницы?

Работающий исходный код можно скачать здесь. Я наблюдаю такое поведение на телефоне Samsung Note 3. Это не происходит в iOS.

https://github.com/JohnLivermore/SampleXamarinApp/tree/funkyNavbar

App.xaml

public partial class App : Application
{
    public App()
    {
        InitializeComponent();

        var mainPage = new MainPage();
        var nav = new NavigationPage(mainPage);

        MainPage = nav;
    }
}

MainPage.xaml

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             Title="Page Title"
             x:Class="SampleApp.MainPage">
    <ScrollView>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Label Grid.Row="0" Text="Field A:" />
            <Editor Grid.Row="1" HeightRequest="200" />
            <Label Grid.Row="2" Text="Field B:" />
            <Editor Grid.Row="3" HeightRequest="200" />
            <Label  Grid.Row="4" Text="Field B:" />
            <Editor Grid.Row="5" HeightRequest="200" />
            <Label  Grid.Row="6" Text="Field B:" />
            <Editor Grid.Row="7" HeightRequest="200" />
            <Label  Grid.Row="8" Text="Field B:" />
            <Editor Grid.Row="9" HeightRequest="200" />
        </Grid>
    </ScrollView>
</ContentPage>

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Добавьте следующий код в App.cs для автоматического изменения размера страницы.

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 MainPage());
    }
}
0 голосов
/ 11 октября 2019

Если вы хотите сделать положение панели инструментов в Android статичным, попробуйте добавить это в атрибуте [Activity] в вашем MainActivity:

WindowSoftInputMode = Android.Views.SoftInput.AdjustNothing

Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...