-1

J'utilise une entrée dans XF avec un fond personnalisé pour la plate-forme Android. Quand il est concentré, le clavier couvre la ligne d'entrée.Formes Xamarin. Clavier sur android couvre le fond d'une entrée avec fond personnalisé

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)); 
    } } 

Photos: Entry with borders Keyboard covers bottom J'ai besoin de montrer la ligne de fond. J'ai essayé d'ajouter le remplissage comme ceci: private void UpdatePadding(MessageEntry MessageEntry) { Control.SetPadding((int)Forms.Context.ToPixels(MessageEntry.LeftPadding), 10, (int)Forms.Context.ToPixels(MessageEntry.RightPadding), 0);
}
Mais c'est remplissage pour le texte à l'intérieur de l'entrée.

Répondre

0

Je l'ai corrigé. Le problème était avec le remplissage pour l'entrée. Il était 0 pour le bas et le haut. Je l'ai mis comme indiqué dans le code suivant:

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); 
    }