【问题标题】:Xamarin Entry Custom Renderer FAILS to change Text Color! Why?Xamarin 条目自定义渲染器无法更改文本颜色!为什么?
【发布时间】:2018-10-10 14:40:07
【问题描述】:

此测试用例无法更改 Xamarin 条目的文本颜色。我可以将背景颜色更改为几种特定颜色??!!!其实,无论做什么,我都可以改变Entry的文字颜色。

如何重现

  1. Visual Studio 2017 - 打开新的跨平台项目/Net Standard Master-Detail / Android 仅用于此目的。

  2. 将入口自定义渲染器添加到您的 android。代码示例:

    using Xamarin.Forms.Platform.Android;
    using Xamarin.Forms;
    using Android.Content;
    
    [assembly: ExportRenderer(typeof(Entry), typeof(MyCondoCPML.Droid.MyEntryRenderer))]
    namespace MyCondoCPML.Droid
    {
        class MyEntryRenderer : EntryRenderer
        {
            public MyEntryRenderer(Context context) : base(context)
            {
            }
    
            protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
            {
                base.OnElementChanged(e);
                if (Control != null) {
                    Control.SetTextColor(global::Android.Graphics.Color.Red);                    
                    Control.SetBackgroundColor(global::Android.Graphics.Color.LightGreen);
                }
            }
        }
    }
    
  3. 在 api 24 上通过 USB 运行 - android 版本 7(三星 S5 NEO)

结果

背景为浅绿色,但文字颜色为黑色!为什么?!我什么都试过了。哈哈。直到你们告诉我当然...

问候,

附:是的,我尝试了 Xamarin 教程/doc/samples/etc。是的,我在堆栈、谷歌、c# 角落等上阅读了任何我能读到的东西...... P.P.S 我的行为也无法更改文本颜色(红色):(

马丁

【问题讨论】:

    标签: c# xamarin.forms custom-renderer


    【解决方案1】:

    为了改变你应该使用的颜色:

    //Text Color - When typing
     Control.SetTextColor(Android.Graphics.Color.SteelBlue);
    //Placeholder text color
    Control.SetHintTextColor(Android.Graphics.Color.Gray);  
    

    也许您缺少提示文本颜色。剩下的就好了,如果你没有任何异常并且如果调用了该方法,则没有其他方法可以实现这一点。此外,在您的 xaml 中,检查您是否设置了任何不同的颜色。

    【讨论】:

    • 嗨,假设我只想更改文本颜色而不是占位符颜色。为什么这条线不会将文本颜色更改为红色? Control.SetTextColor(global::Android.Graphics.Color.Red);条目的文本保持黑色...
    • 它应该只适用于那个,你有什么例外吗?
    • 没有例外。条目保持背景为白色,文本颜色为黑色。这可能是默认值。我用 USB 电缆开发 android.. android 7, api 24...
    • 你有没有设置断点,看看方法是否被调用?
    • 是的。代码被执行。没有任何错误/异常...我可以在手机上输入条目,但文本是黑色的。奇怪的是,我可以更改背景颜色或文本属性,但不能更改 textcolor 或 hinttextcolor...
    猜你喜欢
    • 2020-10-19
    • 2016-09-03
    • 2017-09-24
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多