我在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
只有當我開始輸入時,佔位符才被刪除。我希望佔位符在輸入焦點時被移除。 –