【问题标题】:Android Placeholder\Hint text in Xamarin FormsXamarin 表单中的 Android 占位符\提示文本
【发布时间】:2016-10-28 00:12:48
【问题描述】:

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

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

【问题讨论】:

    标签: xamarin xamarin.android xamarin.forms


    【解决方案1】:

    Xamarin 表单入口视图有一个 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 包更新到最新版本。

    【讨论】:

    • 完美,谢谢。一定是在旧版本上。更新 Nuget 包修复了它。
    • 很高兴我能帮上忙 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2017-01-01
    • 2014-06-22
    • 1970-01-01
    • 2017-03-16
    • 2019-02-25
    相关资源
    最近更新 更多