Xamarin 表格。 android 上的键盘覆盖了具有自定义背景的条目底部
Xamarin Forms. Keyboard on android covers bottom of an entry with custom background
我在 XF 中使用一个带有自定义背景的条目用于 Android 平台。当它聚焦时,键盘会覆盖输入的底线。
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);<br>
}
但它是对条目内文本的填充。
我修好了。
问题在于输入填充。底部和顶部为 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);
}
我在 XF 中使用一个带有自定义背景的条目用于 Android 平台。当它聚焦时,键盘会覆盖输入的底线。
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);<br>
}
但它是对条目内文本的填充。
我修好了。 问题在于输入填充。底部和顶部为 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);
}