0
在Xamarin Forms應用程序中,我試圖創建一個自定義Entry
實現,該實現在聚焦時不會自動顯示軟鍵盤。目標是在頁面上使用此條目的一個實例以及其他常規條目。Xamarin形成隱藏軟鍵盤的自定義條目渲染器
我熟悉的建議Xamarin窗體模式自定義視圖渲染,並且已成功創建兩個入口和它的渲染器,如下:
public class BlindEntry : Entry
{
}
[assembly: ExportRenderer(typeof(BlindEntry), typeof(BlindEntryRenderer))]
public class BlindEntryRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.FocusChange += Control_FocusChange;
}
}
private void Control_FocusChange(object sender, FocusChangeEventArgs e)
{
if (e.HasFocus)
{
// What goes here?
}
else
{
// What goes here?
}
}
}
顯示和隱藏軟鍵盤,我想一個來自this question的建議將提供解決方案,但對於哪種方法是最佳方法有許多不同意見。另外,即使在選擇合適的模式後,我也不清楚如何從上述自定義渲染器中訪問所需的原生Android API。
例如,我知道我可以使用下面的呼叫(從Activity
內)獲得到一個InputMethodManager
的引用,但是它並不明顯如何從渲染器內引用的含活性:
var imm = GetSystemService(InputMethodService)
非常感謝您的建議。
添
這看起來像一個非常優雅的解決方案,但分配被忽略。如果在設置InputType屬性值後立即設置斷點,我可以看到它設置爲Android.Text.InputTypes.DatetimeVariationNormal。 –