鍵盤

2016-12-16 45 views
0

我在XAML中的條目如下:鍵盤

<Entry x:name="userNameEntry" Placeholder="Name"/> 

在我xaml.cs文件我寫了下面的代碼在頁面的構造函數:

userNameEntry.Focused += (sender, e) => 
{ 
userNameEntry.Placeholder = ""; 
} 

每當我點擊輸入字段佔位符文本被替換,但沒有顯示鍵盤。我必須再次點擊才能彈出鍵盤。

如何替換佔位符並顯示鍵盤?

+1

?它會自行消失,並在場地空時再次顯示。 – irreal

+0

只有當我開始輸入時,佔位符才被刪除。我希望佔位符在輸入焦點時被移除。 –

回答

0

我想這裏會發生什麼樣的種族情況。所以我認爲你需要從Xaml實現onFocus事件並從後面的代碼中處理它。

<Entry x:name="userNameEntry" Placeholder="Name" Focused="userNameEntry_OnFocused"/> 

,並在後面

private void userNameEntry_OnFocused(object sender, FocusEventArgs e) 
{ 
    userNameEntry.Placeholder = ""; 
} 

代碼嘗試,如果它的工作:)雖然我自己的用戶開始輸入,因爲這是將它簡單的工作之前,我不會刪除佔位符。

+0

感謝您的回覆。但同樣的事情正在發生,鍵盤只會在雙擊時彈出。 –

0

我可以重現您找到的場景。通過檢查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/