xamarin / Xamarin.Forms

Xamarin.Forms is no longer supported. Migrate your apps to .NET MAUI.
https://aka.ms/xamarin-upgrade
Other
5.62k stars 1.87k forks source link

XF 4.3.0.991211 No text in UWP Entry when loaded, but shows up when focus/tap on the entry field #8562

Closed StanleyBroo closed 5 years ago

StanleyBroo commented 5 years ago

No text in UWP Entry when loaded, but shows up when focus on the entry field

Steps to Reproduce

  1. Create a Shared XF 4.3.0.991211 project
  2. Wrap Entry in Stacklayout
  3. Bind some prop from VM to the Entry
  4. Debug App local UWP ..sometimes the prop/text isn't loaded in the entry until you focus on the entry then the text shows up. Have tried setting different bg color and textcolor..but this is something else regarding the refresh/update of the control content when loaded. Have never seen this before, it started to happen after update XF 4.3.0.991211. We have also compiled/deployed a release version of the UWP..same behaviour, sometimes the text is there. It seems like the VM properties assigned before loading of the control doesn't show, but VM props/text updated after control is on the screen shows up.

Expected Behavior

   All VM prop/text should show up in the entry no matter if the prop is set before control is loaded on the screen.

Actual Behavior

prop/text doesn't show on UWP (entry) that is set before control is loaded.

Basic Information

`

/> `

Screenshots

Reproduction Link

StanleyBroo commented 5 years ago

We have tried changing the baseviewmodel class and set compare prop to false, but same behaviour, this is control/platform related. If we reverse back to previous versions of XF, the entry field works as expected on UWP. Android is working as expected on both versions of XF

StanleyBroo commented 5 years ago

This is related to animations. If scaling the grid onappearing the entry text is invisible on UWP when the animation is done. But can be seen if focus on the entry

` login_frame.Scale = 0.0; login_frame.IsVisible = true; await Task.Run(async () => await Task.Delay(400)); await login_frame.ScaleTo(1.5, 300, Easing.CubicIn); await login_frame.ScaleTo(1, 300, Easing.CubicOut); await Task.Run(async () => await Task.Delay(400));

        await Header_lbl.FadeTo(1, 600);`
StanleyBroo commented 5 years ago

https://github.com/xamarin/Xamarin.Forms/issues/8503