我在XAML中的条目如下:键盘
<Entry x:name="userNameEntry" Placeholder="Name"/>
在我xaml.cs文件我写了下面的代码在页面的构造函数:
userNameEntry.Focused += (sender, e) =>
{
userNameEntry.Placeholder = "";
}
每当我点击输入字段占位符文本被替换,但没有显示键盘。我必须再次点击才能弹出键盘。
如何替换占位符并显示键盘?
我在XAML中的条目如下:键盘
<Entry x:name="userNameEntry" Placeholder="Name"/>
在我xaml.cs文件我写了下面的代码在页面的构造函数:
userNameEntry.Focused += (sender, e) =>
{
userNameEntry.Placeholder = "";
}
每当我点击输入字段占位符文本被替换,但没有显示键盘。我必须再次点击才能弹出键盘。
如何替换占位符并显示键盘?
我想这里会发生什么样的种族情况。所以我认为你需要从Xaml实现onFocus事件并从后面的代码中处理它。
<Entry x:name="userNameEntry" Placeholder="Name" Focused="userNameEntry_OnFocused"/>
,并在后面
private void userNameEntry_OnFocused(object sender, FocusEventArgs e)
{
userNameEntry.Placeholder = "";
}
代码尝试,如果它的工作:)虽然我自己的用户开始输入,因为这是将它简单的工作之前,我不会删除占位符。
感谢您的回复。但同样的事情正在发生,键盘只会在双击时弹出。 –
我可以重现您找到的场景。通过检查xamarin形式的源代码EntryRenderer我们可以发现,
_textView.Hint = Element.Placeholder;
的Hint
属性是Android原生EditText
,并且渲染目标对象是EntryEditText是从EditText
在Android原生继承。
所以我创建xamarin机器人的项目和使用的EditText与提示,下面的代码:
public class MainActivity : Activity
{
EditText et;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
et = (EditText)FindViewById(Resource.Id.edittext);
et.Click += Et_Click;
}
private void Et_Click(object sender, System.EventArgs e)
{
et.Hint = "";
}
}
当我点击的EditText键盘节目,并在同一时间的提示消失。
我还创建条目的客户呈现如下面的代码:
便携式代码
public class MyEditText : View
{
}
的Android项目代码
public class MyEditTestRenderer : ViewRenderer<MyEditText, EditText>,Android.Views.View.IOnClickListener
{
EditText et;
protected override void OnElementChanged(ElementChangedEventArgs<MyEditText> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
// perform initial setup
et = new EditText(this.Context);
SetNativeControl(et);
}
et.Click += Et_Click;
et.Hint = "name";
// et.SetOnClickListener(this);
}
private void Et_Click(object sender, EventArgs e)
{
et.Hint = "";
}
}
但它可以当我第一次点击EditText
时没有检测到点击事件。当我第二次点击EditText
时,Hint
消失。
你为什么要删除占位符文本,您可以将此问题报告给https://bugzilla.xamarin.com/
?它会自行消失,并在场地空时再次显示。 – irreal
只有当我开始输入时,占位符才被删除。我希望占位符在输入焦点时被移除。 –