@xamarin_russia

Страница 493 из 619
vladimir
31.07.2018
09:06:32
ну да, и вам вообще не надло было трогать свойство Progress у ProgressBar

Sasha
31.07.2018
09:07:47
ну да, и вам вообще не надло было трогать свойство Progress у ProgressBar
А тогда как надо было задавать это значение? Объясните пожалуйста

vladimir
31.07.2018
09:08:41
никак, они уже все заданы
вам надо было только внешний вид изменить, а свойства Progress, Min и Max не трогать

Google
vladimir
31.07.2018
09:10:08
https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs#L26 https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs#L89

оно само уже инициализировано с Max, и обновляет с нужным множителем

вам только надо было внешний вид менять

хотя, смотря куда вы свой код вставляли, могло и сломать всё

если в CreateNativeControl, то тогда да, там вы всё могли сломать

An
31.07.2018
09:26:11
Что вы делаете для обработки ошибок, вот у меня 2 комманды в въюмодели по 1 строчке в каждой, но они обвернуты в большие трай кетчи, одинаковы

Ekaterina
31.07.2018
10:06:49
Привет всем)) Может была у кого-нибудь подобная ошибка? The "LinkAssemblies" task failed unexpectedly. Mono.Linker.MarkException: Error processing method: 'System.Byte[] Jose.ConcatKDF::DeriveKey(System.Security.Cryptography.CngKey,System.Security.Cryptography.CngKey,System.Int32,System.Byte[],System.Byte[],System.Byte[],System.Byte[])' in assembly: 'jose-jwt.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Security.Cryptography.ECDiffieHellmanCng at Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference) at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference) at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference) at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method) at Mono.Linker.Steps.MarkStep.ProcessQueue() --- End of inner exception stack trace --- at Mono.Linker.Steps.MarkStep.ProcessQueue() at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() at Mono.Linker.Steps.MarkStep.Process() at Mono.Linker.Steps.MarkStep.Process(LinkContext context) at Mono.Linker.Pipeline.Process(LinkContext context) at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context) at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res) at Xamarin.Android.Tasks.LinkAssemblies.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() Pickpoint.CourierService.Android

Привет всем)) Может была у кого-нибудь подобная ошибка? The "LinkAssemblies" task failed unexpectedly. Mono.Linker.MarkException: Error processing method: 'System.Byte[] Jose.ConcatKDF::DeriveKey(System.Security.Cryptography.CngKey,System.Security.Cryptography.CngKey,System.Int32,System.Byte[],System.Byte[],System.Byte[],System.Byte[])' in assembly: 'jose-jwt.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Security.Cryptography.ECDiffieHellmanCng at Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference) at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference) at MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference) at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method) at Mono.Linker.Steps.MarkStep.ProcessQueue() --- End of inner exception stack trace --- at Mono.Linker.Steps.MarkStep.ProcessQueue() at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() at Mono.Linker.Steps.MarkStep.Process() at Mono.Linker.Steps.MarkStep.Process(LinkContext context) at Mono.Linker.Pipeline.Process(LinkContext context) at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context) at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res) at Xamarin.Android.Tasks.LinkAssemblies.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() Pickpoint.CourierService.Android
Пытаюсь запустить в release. Если linker - none в андроид пректе, то все работает, если изменить настройки linker, то вылетает эта ошибка

vladimir
31.07.2018
10:18:14
Пытаюсь запустить в release. Если linker - none в андроид пректе, то все работает, если изменить настройки linker, то вылетает эта ошибка
должно быть Sdk Only, а то при All будет жирное приложение а также попробуйте явно использовать какой-нибудь метод из библиотеки jose-jwt.dll, на которую ругается линковщик

Ekaterina
31.07.2018
10:18:23
sdk only

Dim
31.07.2018
11:00:48


Google
Андрей Родионович
31.07.2018
11:04:29
https://stackoverflow.com/questions/44851302/change-background-color-of-toolbaritems?rq=1 Просто загугли

И к слову, если не бэкграунд колор, а колор самой иконки просто нарисуй её цветом которым хочешь

Dim
31.07.2018
11:15:49
Андрей Родионович
31.07.2018
11:21:40
Я же говорю На сколько я помню, в ios цвета делал монохромными и приложуха сама их меняла, дроид же цвета иконок не трогал

В каком цвете ты иконки для дроида нарисовал и в каком они отобразились?

Олег
31.07.2018
11:23:50
https://icons8.com/ вот тут качаешь иконки, выбираешь цвет, какой тебе надо. У них фон прозрачный, так что меняя BarBackgroundColor - ты автоматически задашь фон иконкам. Но сами иконки, насколько я знаю, не меняются, т.к. картинки. Качаешь по новой нужный цвет и устанавливаешь.

Alexander
31.07.2018
11:58:46


в проект добавил эти пакеты Xamarin.Firebase.iOS.Analytics Xamarin.Firebase.iOS.CloudMessaging Xamarin.Firebase.iOS.Core Xamarin.Firebase.iOS.InstanceID

vladimir
31.07.2018
12:00:00
Clean/Rebuild

Alexander
31.07.2018
12:00:32
Clean/Rebuild
пробовал, перезагружал проект

vladimir
31.07.2018
12:00:45
проект не надо перезагружать

а папки bin и obj вручную пробовали удалять?

Alexander
31.07.2018
12:04:00


FinniV
31.07.2018
12:12:48
Подскажет кто то плагин для создания TagView?

под айос

Dmitriy
31.07.2018
15:43:55
Не велите казнить, велите слово молвить :) Простенькая казалось бы функция в асинхроне зависает намертво. В синхронном варианте всё выполняется моментально (настройка пока одна всего). Звучит как дедлок, но с фига ли? Ничего замысловатого не происходит и других тредов в этот момент вроде. Хотя я не уверен как проверить. В отладке результирующий таск говорит Evaluation is not allowed when the thread is in 'Wait' state internal static async Task<IEnumerable<UserSetting>> GetAllAsync() { var directory = new DirectoryInfo(SettingsFolder); var queryresult = await Task.Run(() => from file in directory.GetFiles() let value = file.OpenText().ReadToEnd() let deserialized = JsonConvert.DeserializeObject<UserSetting>(value, SerializerSettings) select deserialized ); return queryresult; }

vladimir
31.07.2018
15:49:21
Dmitriy
31.07.2018
15:50:44
await внутри let нельзя

Google
Dmitriy
31.07.2018
15:52:04
Опять же, без Task оно работает синхронно и компилятор недоволен

vladimir
31.07.2018
15:52:55
используйте LINQ методы вместо ключевых слов, а по файлам пройдитесь с foreach

Dmitriy
31.07.2018
15:53:40
Опять же, без Task оно работает синхронно и компилятор недоволен
☝️ This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.

vladimir
31.07.2018
15:54:02
уберите await Task.Run

он не нужен там

естественно, оно застынет

Dmitriy
31.07.2018
15:57:01
Без этого что-то не сходится. Может я чего-то не понимаю, но запрос к файлам - "долгая операция". Чтобы пихнуть её в асинхрон её надо засунуть в Task.Run. Там где без результата дальше никак, ставим await если надо вернуть управление или task.Result если тут уже можно синхронно

vladimir
31.07.2018
15:59:06
вам надо ваш GetAllAsync засунуть в Task.Run а внутри GetAllAsync, который имеет тип async Task, можно и нужно делать все долгие методы через await, в данном случае ReadToEndAsync

Dmitriy
31.07.2018
16:05:37
Не понял в чем разница, прошу прощения.

vladimir
31.07.2018
16:06:21
между чем и чем?

Dmitriy
31.07.2018
16:07:08
Между Task.Run внутри и снаружи метода

vladimir
31.07.2018
16:10:53
ну снаружи вы его запускаете без ожидания, прокинув туда свою async Task функцию а в вашем случае вы запускаете отдельную задачу, которая должна по идее идти параллельно, так вы её ещё и ожидать пытаетесь

Dmitriy
31.07.2018
16:14:59
Так компилятор вообще моментально ругается если Task.Run не ожидать

vladimir
31.07.2018
16:17:04
как вы его используете?

Dmitriy
31.07.2018
16:18:55


vladimir
31.07.2018
16:20:05
не вижу, как вы тут используете Task.Run

Dmitriy
31.07.2018
16:20:33


Dim
31.07.2018
16:20:49


vladimir
31.07.2018
16:21:30
так вы и не далете, что я вам сказал

Dmitriy
31.07.2018
16:22:08
Ну, после этого переделал без task.run, результат тот же. Минутку, скрин

Google
Dmitriy
31.07.2018
16:22:32


Kirill
31.07.2018
16:22:42
а тут почему не await?

vladimir
31.07.2018
16:22:57
Task.Run нужен, но где вы вызываете GetAllAsync

Kirill
31.07.2018
16:23:09
Возможно он у контейнера прописан, надо всю верску смотреть

vladimir
31.07.2018
16:23:25
вот это правильная реализация GetAllAsync

теперь её вызывайте извне с Task.Run

Андрей Родионович
31.07.2018
16:23:53
Попробуй поставить -6

Dmitriy
31.07.2018
16:24:09
теперь её вызывайте извне с Task.Run
Чот по-моему это не так работает. Пора домой уже, домой приеду - попробую, конечно

Admin
ERROR: S client not available

vladimir
31.07.2018
16:24:55
Чот по-моему это не так работает. Пора домой уже, домой приеду - попробую, конечно
а как? то есть вы сюда приходите спрашиваете, как надо вам говорят а вы говорите, что оно не так работает то есть вы и так знаете?

Dmitriy
31.07.2018
16:25:31
а тут почему не await?
Это уже код активити, тут нечего ждать, пора результат всего ожидания показывать. Я же не буду oncreate делать async

Dmitriy
31.07.2018
16:27:02
а как? то есть вы сюда приходите спрашиваете, как надо вам говорят а вы говорите, что оно не так работает то есть вы и так знаете?
То что у меня не получается и нужна помощь не значит что у меня нет какого-то понимания. Я вижу что вы знаете больше меня, но если вы вдруг скажете что красное это синее у меня будет повод усомниться, даже если вся картина у меня ускользает

А как тогда? Как он получит данные, если не будет ждать.
Асинхронная функция возвращает Task. На нём можно сделать await и вернуть контроль наверх, а можно вызвать .result и синхронно дождаться окончания, насколько я это понял

vladimir
31.07.2018
16:30:17
короче, вот этот метод тоже либо сделайте async (и назовите, например, TestAsync), и вызовите Task.Run(TestAsync), либо его весь засуньте в Task.Run(async () => /* ваш действия тут */) а также вызывайте там внутри await SettingsManager.GetAllAsync()

Kirill
31.07.2018
16:30:21
Асинхронная функция возвращает Task. На нём можно сделать await и вернуть контроль наверх, а можно вызвать .result и синхронно дождаться окончания, насколько я это понял
Вызывать синхронно ассинхронные методы не есть хорошей практикой, из-за этого тоже могут быть фризы. Ну и не result вызывать, а .Wait() тогда уж. Ну и UI должен быть ассинхронным, как и остальная логика. Пока идет операция в async методе необходимо отображать пользователю индикатор.

Kirill
31.07.2018
16:32:45
Когда доберусь до украшения так все и будет, это work in progress. Task.wait попробую
лучше сразу await SettingsManager.GetAllAsync() делать, как написл Владимир

Dmitriy
31.07.2018
16:33:24
Разве можно добавить async в сигнатуру обработчика события activity?

vladimir
31.07.2018
16:33:38
она там не нужна и её там не будет

Google
vladimir
31.07.2018
16:33:54
потому что вы будете вызывать Task.Run

Kirill
31.07.2018
16:40:02
Разве можно добавить async в сигнатуру обработчика события activity?
В любой метод, который возвращает Task или void можно добавить async. Но надо правитьно продумать логику.

потому что вы будете вызывать Task.Run
Но потом все равно надо возвращаться в главный поток что бы адаптеру задать полученные данные

Dmitriy
31.07.2018
16:43:34
Ну, насколько я понимаю асинхрон, засовывать уже асинхронный метод в task.run не нужно - task формируется компилятором внутри метода и получается "прозрачно"

Андрей Родионович
31.07.2018
16:45:05
Ты во все стороны поставил минусовые значение, а влево поставил еще меньше, чего ты ожидал? Если хочешь ответов изложи суть проблемы...

vladimir
31.07.2018
16:45:11
Андрей Родионович
31.07.2018
16:46:15
Ну так, у тебя стоит падинг на stacklayout, в нем стоит entry, и ты спрашиваешь чего энтри не может выйти за раски layout?

Точнее label

Не entry

Я же писал уже, начни с этого https://metanit.com/sharp/xamarin/

Там и по компоновке многое и все что захочешь

Dmitriy
31.07.2018
16:48:32
ну только если он не в главном потоке (который Thread) идёт в ином случае нужно, иначе UI зависнет
Почему зависнет? Без await асинхронный метод возвращает Task и работа идёт дальше, особенно в главном потоке. (Я не спорю, я проговариваю как я это понимаю)

Dim
31.07.2018
16:49:06


Андрей Родионович
31.07.2018
16:50:47
У тебя контейнер отступает от экрана Задай другой backgroundcolor для stacklayout и посмотри его отступы Из контейнера child выдезти не может

Dmitriy
31.07.2018
16:52:47
Ну, пока я его не вызову не зависнет, так ведь? И могу не вызывать, а установить callback чтобы пользователю совсем вернуть управление

Страница 493 из 619