@xamarin_russia

Страница 411 из 619
vladimir
05.06.2018
14:58:20
что нужно сравнить?

человеческим языком

Kirill
05.06.2018
14:58:38
vladimir
05.06.2018
14:58:46
я понимаю, что сравнивается эпсилон

Google
Max
05.06.2018
14:58:48
человеческим языком
ну типо повернут он или нет в данный момент

если повернут, разверни обратно

vladimir
05.06.2018
14:59:09
с нулём можно double сравнивать, если что

Kirill
05.06.2018
14:59:12
я понимаю, что сравнивается эпсилон
это просто название переменной такое) булевая

vladimir
05.06.2018
14:59:33
там нет булевых

Andrey
05.06.2018
14:59:54
если повернут, разверни обратно
А зачем вообще сравнивать? Можно де просто повернуть еще на 180 и все

vladimir
05.06.2018
15:00:00
попробуй 0 во втором случае

Kirill
05.06.2018
15:00:38
там нет булевых
в моем коде есть

vladimir
05.06.2018
15:00:38
оно же должно прокрутиться в исходное состояние - с поворотом 0

в моем коде есть
а я про него ничего не писал

vladimir
05.06.2018
15:01:20
ну вот, RotateXTo должна быть 0

Max
05.06.2018
15:01:26
Google
vladimir
05.06.2018
15:02:40
опять же, почему сравнивается с 1e-8? сравни с 0 сравнение с константами делается с эпсилон, конечно, но оно тут ни к чему

Max
05.06.2018
15:02:42
в моем коде есть
о, ваш работает)

vladimir
05.06.2018
15:03:33
и тогда вообще должно быть double.Epsilon

сравнивай с 0, короче, отрицательного угла там не должно быть

Max
05.06.2018
15:05:21
и тогда вообще должно быть double.Epsilon
если честно, не помню как там 0, но вот допустим 7 записывается в double как 6.9999999

и тд

Kirill
05.06.2018
15:06:13
и тогда вообще должно быть double.Epsilon
да где ты эпсилон нашел то?)

Max
05.06.2018
15:06:48
это константа с min.double + еще значимая часть

Kirill
05.06.2018
15:07:07
есть там такой
в Math есть, но каким боком он в разговоре?)

vladimir
05.06.2018
15:07:27
именно, потому сранивая с константой 7.0, мы делаем double d = GetDouble(); bool doubleEquals = Math.Abs(d - 7.0) < double.Epsilon;

Kirill
05.06.2018
15:07:56
Хм, по идее должно рабоать. попробуй так _icon.Animate(@"Arrow", new Animation((d) => _icon.Rotation = e ? (90 * d) : 90 - 90 * d));
Тут увидел? Но это не Epsilon, а просто название булевой переменной. IsExpanded сокращенно)

vladimir
05.06.2018
15:08:10
к тому, что он так по-хитрому пытается свою минимальную константу использовать, где она, во-первых, не нужна, а, во-вторых, она не так используется

vladimir
05.06.2018
15:08:18
там сравнение, потому что, должно быть с 0

Kirill
05.06.2018
15:08:26
ааааа

vladimir
05.06.2018
15:08:48
Тут увидел? Но это не Epsilon, а просто название булевой переменной. IsExpanded сокращенно)
отстаньте уже от меня, я вам уже написал, что про ваш код я не пишу вообще про булевы всякие мне втираете перечитайте чат

Max
05.06.2018
15:10:16
именно, потому сранивая с константой 7.0, мы делаем double d = GetDouble(); bool doubleEquals = Math.Abs(d - 7.0) < double.Epsilon;
можно и так. все равно значимые только 13 символов, каким боком там примерно 1e-324 нужно - не ясно

это уж для совсем точных

Google
Max
05.06.2018
15:11:03
мне надо было угол просто 180 +- 0.00001 убрать с погрешности

vladimir
05.06.2018
15:11:13
вообще там double в Forms - overhead float в 99% случаях достаточно просто везде в UI огромные миры в играх во float

Max
05.06.2018
15:11:32
но с вами согласен

но там это тоже eps-константа

vladimir
05.06.2018
15:13:16
так с новым кодом там надо будет просто сравнвать ExpandWishesButton.RotationX > 0 и всё, потому что оно будет в диапазоне от 0.0 до 180.0 а с 0.0 можно сравнивать

Кита
05.06.2018
17:45:45
По поводу диспозить HttpClient - https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/
холиварная тема. Во-первых в мобилках надо использовать нативные хэндлеры. Инстанс нативного хэндлера(по крайней мере OkHttp на андроид) настраивается на таймаут 1 раз, если таймаут меняется то создается новый инстанс. Если у запросов разные таймауты а это жизненная задача то переиспользовать и http client и http handler не получится

Egor
05.06.2018
17:46:33
в дотнет коре пишут потиху сокет хэндлер для хттпклиента ?

т е  С# portable имплементация

Egor
05.06.2018
17:47:32
ну когда напишут - будем тоже юзать)

нетворк стек в замарине - самое слабое место

Egor
05.06.2018
17:48:19
я недавно пофиксил пяток багов и был вообще в шоке как оно работает)

Кита
05.06.2018
17:48:20
Поэтому только нативные хэндлеры) только их и только со своими настройками

Max
05.06.2018
18:34:37
И обернуть на высоком уровне отлов ошибок через интерфейс, а реализовать отлов нативно на каждой платформе

И заворачивать нативные ошибки в какой-то дефолтный для C# Exception, условный ResponseException

И ловить сверху

Но это если делать нормально в рамках Forms

Google
Кита
05.06.2018
18:41:00
А так, на самом деле надо бы нативно все это дело делать, как вы и сказали
так в итоге так и делается. Несколько инстансов с разными настройками, а ошибки обрабатываются как ненативные 4хх-5хх так и нативные, и заворачиваются в свой эксепшн и прокидываются наверх, да)

Nikita
05.06.2018
19:32:44
Коллеги, добрый вечер. А как полностью очистить проект? Я случайно сделал пространство имен NavigationPage. Xamarin начал ругаться, что нельзя для пространства имён делать new NavigationPage. Я переименовал свою папку, но компилятор и редактор до сих пор видят старое название

Nikita
05.06.2018
19:43:26
Спасибо!

Олег
05.06.2018
20:52:36
Всем привет!

кто знает, в чем дело?

я тут собрал пример с Metanita. Там есть список друзей, сам добавляешь друга и редактируешь. Так вот, там открывается сперва лист, при нажатии на друга, должен открыться новый вью. На ювп и андроиде все отрабатывает, на айос нет.





Max
05.06.2018
21:02:01
кто знает, в чем дело?
Может в том, что ты брал это с метанита?

Олег
05.06.2018
21:03:07
Так, ладно, метанит - шлак, я понял) но в чем дело может быть в итоге? На двух платформах отрабатывает, на ios нет.

Max
05.06.2018
21:04:16
Черт, заорал с вьюмодели, которую руками создают. Но типо оно примерно так же и работает в итоге, только вынесено это в NavigationService

Олег
05.06.2018
21:04:32
Я ещё учусь.

Олег
05.06.2018
21:07:06
По сути при нажатии на объект в списке должен открыться новый вью. Там можно редактировать, добавлять и удалять информацию. В андроиде и ювп при нажатии на элемент в списке, открывается новый вью - как и должно. В айос элемент просто выделяется в списке, но навигации не происходит.

Google
Max
05.06.2018
21:08:01
Потому что тут должен быть асинхронный вызов

await Nav.PushAsync

Ну и естественно, все это дело не должно быть в свойстве

А в отдельном методе, как минимум

И работать через команду

Олег
05.06.2018
21:09:39
Через обработчик itemselected?

Max
05.06.2018
21:09:48
Если навигация простая и ты пока не разобрался с ViewModel <=> ViewModel навигацией, то проще делать вот в таком ключе, прямо на странице (.xaml.cs)

Ну и условные данные вытащи из ViewModel к которой данная страница прибинжена

Можно через var vm = BindingContext as MyViewModel; ... await Navigation.PushAsync(vm.Data)

Олег
05.06.2018
21:13:52
Попробую. Благодарю, Сова.

Max
05.06.2018
21:16:08
Ну если прям хочется vm2vm кастомную глянуть, то тебе сюда и подчистую клонить все https://github.com/Binwell/Order-King-Mobile-Core

Но с навигацией я там более чем не согласен

Хотя, она в принципе своеобразная и в принципе работает

Олег
05.06.2018
21:29:44


Кита
05.06.2018
21:29:54
Но с навигацией я там более чем не согласен
на message busах? да, решение так себе. Как и делать состояние для страницы типа Loading и перекрывать пользовательский интерфейс и запрещать пользовательскую активность. 2к18 же на дворе. Но это все пропагандирует mvvm подход

Олег
05.06.2018
21:29:57
ну, вот так в принципе работает. Я такое уже делал.

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