Пользовательский рендерер Xamarin Entry НЕУДАЕТ изменить цвет текста! Почему?

В этом тестовом примере НЕ удается изменить цвет текста записи Xamarin. Я могу изменить цвет фона на несколько определенных цветов ?? !!! Фактически, что бы я ни делал, я могу изменить цвет текста записи.

Как воспроизвести

  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. ЗАПУСК по USB на api 24 - android версия 7 (Samsung S5 NEO)

Результат

Фон светло-зеленый, НО цвет текста ОСТАЕТСЯ ЧЕРНЫМ! ПОЧЕМУ?! Все перепробовала. Ржу не могу. Пока вы, ребята, не скажете мне, что, конечно ...

С уважением,

P.S. Да, я пробовал Xamarin tutorial / doc / samples / etc. Да, я читал все, что мог, в стеке, google, c # corner и т. Д. P.P.S Мое поведение также не меняет цвет текста (красный) :(

Мартин


person Martin MightyMart Lauzon    schedule 10.10.2018    source источник


Ответы (1)


Чтобы изменить цвета, вы должны использовать:

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

Возможно, вам не хватает цвета текста подсказки. В остальном все в порядке, если у вас нет исключений и если вызывается метод, другого способа добиться этого нет. Кроме того, в вашем xaml проверьте, не устанавливаете ли вы какой-либо другой цвет.

person Bruno Caceiro    schedule 10.10.2018
comment
Привет, допустим, я хочу изменить ТОЛЬКО цвет текста, а не цвет заполнителя. Почему эта строка не меняет цвет текста на красный? Control.SetTextColor (глобальный :: Android.Graphics.Color.Red); текст записи остается черным ... - person Martin MightyMart Lauzon; 10.10.2018
comment
Он должен работать только с этим, у вас есть исключения? - person Bruno Caceiro; 10.10.2018
comment
Без исключений. Запись остается белым фоном и черным цветом текста. Вероятно, это значение по умолчанию. я разрабатываю android с кабелем usb .. android 7, api 24 ... - person Martin MightyMart Lauzon; 10.10.2018
comment
Вы установили точку останова, чтобы увидеть, вызываются ли методы? - person Bruno Caceiro; 10.10.2018
comment
да. Код выполнен. Никаких ошибок / исключений ... Я могу ввести запись на телефоне, но текст черный. Как ни странно, я могу изменить цвет фона или свойства текста, но не цвет текста или цвет подсказки ... - person Martin MightyMart Lauzon; 10.10.2018
comment
он РАБОТАЕТ в эмуляторе api 25, nougat, но не работает USB-кабель к моему android 7, api 24 ?! Почему? пища для размышлений, нужно ли добавлять в манифест особую авторизацию? - person Martin MightyMart Lauzon; 10.10.2018
comment
Вы уверены, что устанавливаете на телефон последнюю версию? Удалите все файлы bin / obj, удалите приложение со своего устройства и повторите попытку. - person Bruno Caceiro; 10.10.2018
comment
Да. Я просто поменял цвет фона с зеленого на белый. Изменение цвета текста на красный работает только в эмуляторе. Не телефон ... чтобы убедиться, что я просто попытался очистить, перестроить, повторно развернуть ... цвет текста не изменится, только цвет фона! очень утомительно и отнимает много времени для такой простой вещи. - person Martin MightyMart Lauzon; 10.10.2018
comment
Давайте продолжим это обсуждение в чате. - person Martin MightyMart Lauzon; 10.10.2018
comment
Похоже, это проблема с Android 7.0 github.com/facebook/react-native/issues/ 17139 - person Martin MightyMart Lauzon; 11.10.2018
comment
Похоже, что не многие люди ЗАИНТЕРЕСОВАНЫ, и это была серьезная проблема. Однако у меня есть обходной путь. Вернувшись к шрифту и контрасту по умолчанию телефона, он теперь работает как с эмулятором. Мое поведение тоже работает. Оба меняют цвет текста на красный в соответствии с контекстом / логикой. - person Martin MightyMart Lauzon; 11.10.2018