0

我的 Xaml:

<StackLayout
   Orientation="Vertical">

   <StackLayout
      Orientation="Horizontal"> 
      //Group labels and back arrow
   </StackLayout>

   <ListView>
      //Message list
   </ListView>

   <Grid>
   //Plus symbol,Editor and send icon
   </Grid>

</StackLayout>

截屏:

在此处输入图像描述

问题:

在普通屏幕中,顶部有一个栏(红色圆圈)。单击底部顶部栏上的编辑器时,它会隐藏。我需要顶部栏始终在顶部。此问题仅在 IOS 部分,在 android 中此功能运行良好。我该如何解决这个问题?

4

2 回答 2

0

UI向上调整的iOS功能。您可以通过自定义渲染器缩小(或保留)视图。

检查这个很好的解释

这也是iOS 上键盘自定义渲染器的代码和平。

于 2018-12-03T12:54:35.203 回答
0

就像问题中的图片一样,我的软键盘总是触摸编辑器。所以我为我的编辑器添加了一个自定义渲染器来解决这个问题。添加该自定义渲染器后,顶部栏始终位于页面顶部。

我使用以下自定义渲染器来解决键盘重叠问题:

using System;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using HBIClientFacingApp;
using HBIClientFacingApp.iOS;

[assembly:ExportRenderer( typeof(CustomEditor), typeof(CustomEditorRenderer))]
namespace YourNameSpace.iOS
{
    public class CustomEditorRenderer: EditorRenderer
    {
        public ChatEntryRenderer()
        {   
            UIKeyboard.Notifications.ObserveWillShow ((sender, args) => {

            if (Element != null)
            {
                Element.Margin = new Thickness(0,0,0, args.FrameEnd.Height); //push the entry up to keyboard height when keyboard is activated
            }
        });

        UIKeyboard.Notifications.ObserveWillHide ((sender, args) => {

            if (Element != null)
            {
                   Element.Margin = new Thickness(0); //set the margins to zero when keyboard is dismissed
            }

        }); 
    }
  }
}
于 2019-01-03T04:41:26.800 回答