-1

私はAndroidプラットフォームのカスタム背景とXFのエントリを使用します。それがフォーカスされているとき、キーボードは入力のボトムラインをカバーします。Xamarin Forms。キーボードはアンドロイドでカスタム背景のエントリの底をカバーします

public class MessageEntryRenderer : EntryRenderer 
{ 
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) 
    { 
     base.OnElementChanged(e); 
     if (e.OldElement != null || this.Element == null) 
      return; 

     Control.Gravity = DefaultGravity; 

     var MessageEntry = Element as MessageEntry; 
     UpdateBackground(MessageEntry); 
     ...    
    } 

private void UpdateBackground(MessageEntry MessageEntry) 
    { 
     if (_renderer != null) 
     { 
      _renderer.Dispose(); 
      _renderer = null; 
     } 
     _renderer = new BorderRenderer(); 
     //Set to background object of type GradientDrawable 
     Control.SetBackground(_renderer.GetBorderBackground(MessageEntry.BorderColor, MessageEntry.BackgroundColor, MessageEntry.BorderWidth, MessageEntry.BorderRadius)); 
    } } 

画像: Entry with borders Keyboard covers bottom 私は一番下の行を表示する必要があります。私はこのようなパディングを追加しようとしました: private void UpdatePadding(MessageEntry MessageEntry) { Control.SetPadding((int)Forms.Context.ToPixels(MessageEntry.LeftPadding), 10, (int)Forms.Context.ToPixels(MessageEntry.RightPadding), 0);
}
しかし、それはエントリ内のテキストのためのパディングです。

答えて

0

私はそれを修正しました。 問題は入力のためのパディングであった。それは底と上のために0でした。私は次のコードに示すように設定します:

private void UpdatePadding(MessageEntry MessageEntry) 
    { 
     Control.SetPadding((int)Forms.Context.ToPixels(MessageEntry.LeftPadding), Control.PaddingTop/3, 
      (int)Forms.Context.ToPixels(MessageEntry.RightPadding), Control.PaddingTop/3); 
    } 
関連する問題