Xamarin Forms中的Android Placeholder \ Hint文本

时间:2016-06-25 13:52:26

标签: xamarin xamarin.android xamarin.forms

我使用Xamarin表单构建跨平台应用程序,在Android中呈现Entry元素时,我遇到了占位符文本问题。占位符在iOS中按预期显示,但在Android中显示为空白。在谷歌搜索后我理解了这个问题:基本上Android文本编辑器字段没有Placeholder属性,你必须设置它的提示。

我不明白的是如何以编程方式执行此操作。我知道如何扩展Editor类,但是我如何告诉Xamarin表单对于Android,Entry单元格应该与我的自定义Editor元素相关,它在设置Placeholder时执行一些设置提示?或者,还有更好的方法?提前致谢

1 个答案:

答案 0 :(得分:4)

Xamarin表单Entry视图有一个PlaceHolder属性,也适用于android: https://developer.xamarin.com/api/property/Xamarin.Forms.Entry.Placeholder/

这是为条目定义plcaeholder的示例:

Entry myEntry = new Entry
{
   Placeholder = "This is a placeholder"
};

如果您使用的是自定义渲染器,您仍然可以使用自定义条目在PCL项目中使用占位符,或者您可以通过以下方式在自定义渲染器中使用控件的Hint属性:

public class MyEntryRenderer: EntryRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);
        if (Control != null)
        {                                
            Control.Hint = "This is my placeholder";                           
        }         

    }
}

如果它仍然不适合您,我建议您将Xamarin.Forms nuget包更新到最新版本。