Я могу воспроизвести найденный вами сценарий. Проверив EntryRenderer из Xamarin кода формы можно найти, что
_textView.Hint = Element.Placeholder;
Hint
свойства от андроида родной EditText
и целевая визуализации объект EntryEditText, который наследует от EditText
в андроиде родной.
Так что я создал проект 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
{
}
андроид проекта код
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
. Hint
исчез, когда я второй раз нажимаю EditText
.
Вы можете сообщить об этой проблеме на https://bugzilla.xamarin.com/
Почему вы удаляете замещающий текст? Он исчезает сам по себе и снова показывает, когда поле пусто. – irreal
Заполнитель заменяется только тогда, когда я начинаю печатать. Я хочу, чтобы заполнитель был удален, когда запись была сфокусирована. –