Как определить высоту виртуальной клавиатуры?

0 nicks [2016-09-04 11:54:00]

Я хочу, чтобы кнопка всегда была точно выше виртуальной клавиатуры. Для этого мне нужно знать высоту клавиатуры. Как я могу это сделать в XF?

android ios xamarin xamarin.forms


1 ответ


0 Решение nicks [2016-09-04 15:58:00]

Установка WindowSoftInputMode = SoftInput.AdjustResize в основном WindowSoftInputMode = SoftInput.AdjustResize и использование этого кода работало :)

public Page1()
    {
        InitializeComponent();

        var al = new AbsoluteLayout
        {
            HorizontalOptions = LayoutOptions.FillAndExpand,
            VerticalOptions = LayoutOptions.FillAndExpand
        };

        var button = new BoxView {Color = Color.Red, VerticalOptions = LayoutOptions.FillAndExpand};

        var entry = new Entry {HorizontalOptions = LayoutOptions.Fill};

        al.Children.Add(button, new Rectangle(0, App.Dimensions.Height - 120, App.Dimensions.Width, 120));

        al.Children.Add(entry, new Rectangle(10, 50, 200, 60));

        Content = al;

        Content.SizeChanged += (sender, args) =>
        {
            button.Layout(new Rectangle(0, Content.Height - 120, App.Dimensions.Width, 120));
        };

    }

App.Dimensions оцениваются в MainActivity следующим образом:

        DisplayMetrics displayMetrics = Resources.DisplayMetrics;
        App.Dimensions.Height = displayMetrics.HeightPixels / displayMetrics.Density;
        App.Dimensions.Width = displayMetrics.WidthPixels / displayMetrics.Density;