@xamarin_russia

Страница 537 из 619
Сирожа
28.08.2018
06:34:29
Можно было конечно под один if код выше вынести, но как-то так пока)

Пока вроде полёт нормальный, если тестеры пробегутся и что-то найдут, то напишу. Спасибо)

Maxim
28.08.2018
07:19:12
Всем привет. Вопрос. Как открыть стандартную звонилку с передачей ей номера телефона?

Kirill
28.08.2018
07:22:50
Всем привет. Вопрос. Как открыть стандартную звонилку с передачей ей номера телефона?
Так загуглить можно. На андроид через intent, на iOS через url tel:

Google
Boris
28.08.2018
07:24:18
Есть вроде плагин кстати, который это дело уже завернул в кроссплатформу

Maxim
28.08.2018
07:25:39
Xam.Plugins.messaging?

Boris
28.08.2018
07:26:16
Сейчас гляну, я где-то использовал

Обманул. Не использовал, а делал свою реализацию

Там полторы строки оказывается

public void Dial(string number) { var uri = Uri.Parse("tel:" + number); var intent = new Intent(Intent.ActionDial, uri); MainActivity.Current.StartActivity(intent); }

Boris
28.08.2018
07:27:50
На iOS:

public void Dial(string number) { UIApplication.SharedApplication.OpenUrl(new NSUrl("tel:" + number), new UIApplicationOpenUrlOptions(), null); }

Karim
28.08.2018
07:54:02
дак вроде есть стандартный метод Device.OpenUri

если для Xamarin.forms

Boris
28.08.2018
08:00:41
Делал не для формс и довольно давно, так что да, вполне реально что с тех пор что-то и стандартное уже завезли

Google
Sasha
28.08.2018
08:02:39
Всем привет, нужно совет, что у меня работает не правильно. У меня метод в ViewModel должен запускать метод в кодбехайнди вюшкы. Я пытаюсь это сделать через action. В конструкторе VM, код: VM.AnimationStart = this.AnimationStart; this.AnimationStart = Animation_onClicked; Метод который должен запукаты анимацию: public void Animation_onClicked (int multiplier) {...} Объявления Action в View и ViewModel: public Action <int> AnimationStart {get; set; } Код метода в ViewModel при котором появляется null exception private async Task ButtonClicked () {... AnimationStart (multiplier) /// error } Спасибо за помощь

Boris
28.08.2018
08:10:50
>> У меня метод в ViewModel должен запускать метод в кодбехайнди вюшкы

Это точно хорошая идея?

Sasha
28.08.2018
08:14:00
>> У меня метод в ViewModel должен запускать метод в кодбехайнди вюшкы
Мне нужно чтобы во время выполнении команды в VM, запускалась анимация

Ильфат
28.08.2018
08:16:59
ViewModel должен релизовать интерфейс IAnimationStart { void AddAnimationListener(IAnimationListener)}, а View : IAnimationListener, и все, регаешь листенер, запускаешь StartAnimation. я бы так сделал

Ильфат
28.08.2018
08:22:21
mvvmcross

Sasha
28.08.2018
08:26:38
mvvmcross
Я юзаю встроенный мввм (

Boris
28.08.2018
08:28:20
Почему не сделать просто событие в vm?

Ильфат
28.08.2018
08:30:57
Я юзаю встроенный мввм (
то же самое, создать PageRenderer и там так же связать

Почему не сделать просто событие в vm?
а как в vm получить доступ к view? только закинуть туда листенер

Boris
28.08.2018
08:33:41
Ты же не поехавший, чтобы делать зависимость в обе стороны между view и view

Ильфат
28.08.2018
08:35:45
я? я то поехавший, но твое решение я не понял (:

Sasha
28.08.2018
08:36:04
Почему не сделать просто событие в vm?
Ну у меня же реализация идет в другом классе, я получается подписку делаю классе кодбехайнда, а но самый запуск идет с метода VM. Я смотрел здесь https://professorweb.ru/my/csharp/charp_theory/level10/10_7.php Запуск события происходит из того же класса, а мне нужно чтобы с VM, или я не доконца понимаю как работают события

Boris
28.08.2018
08:37:07
я? я то поехавший, но твое решение я не понял (:
Сама анимация будет просто вью. В вм, просто кидаем событие и забываем

Boris
28.08.2018
08:39:59
>> я получается подписку делаю классе кодбехайнда, а но самый запуск идет с метода VM Да

Google
Ильфат
28.08.2018
08:54:14
на самом деле просто показал паттерн Observer. а уже реализация через листенеры или эвенты - дело конкретное)

Max
28.08.2018
08:56:28
Довольно просто решается, во ViewModel пишешь: public event EventHandler StartAnimation; Во View: ... viewModel.StartAnimation += tab tab (Создан обработчик) ... Далее во ViewModel: StartAnimation.?Invoke();

Ильфат
28.08.2018
08:57:06
да)

Karim
28.08.2018
08:57:15
как вариант воспользоваться MessagingCenter

Max
28.08.2018
08:57:34
как вариант воспользоваться MessagingCenter
Слишком дорого и ненадежно

vladimir
28.08.2018
08:57:51
Выдавил небольшой смешок :)

Kirill
28.08.2018
09:00:13
Слишком дорого и ненадежно
Ни разу не было, что бы событие не доходило. Зато связи вообще нет)

Roma
28.08.2018
09:01:51
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) { base.OnElementChanged(e); if (Control != null) { } }

как добавить линию с низу в елемент entry как в андроид?

Roma
28.08.2018
09:02:52
например на iso

Karim
28.08.2018
09:02:59
Ни разу не было, что бы событие не доходило. Зато связи вообще нет)
действительно, есть некоторые кейсы, когда они ненадежны. хоть и в некоторых случаях их удобно использовать

Max
28.08.2018
09:03:29
Ни разу не было, что бы событие не доходило. Зато связи вообще нет)
Ну у молодых весьма часто проблемы с пониманием messagecenter

И не доходят сообщения по ряду причин

Roma
28.08.2018
09:03:47
и как изменить цвет этой линии

?

Ильфат
28.08.2018
09:04:30
Просто листенеры из Java, в шарпе такого наименования нет)
на самом деле я пришел в java из мира c# и потом обратно)

Kirill
28.08.2018
09:04:30
действительно, есть некоторые кейсы, когда они ненадежны. хоть и в некоторых случаях их удобно использовать
Главное правильно пользоваться и не забывать отписываться. Инструмент удобный, но без понимания работы можно дров наломать

Google
Ильфат
28.08.2018
09:05:48
нет, на самом деле просто паттерны недавно пересматривал

стандарт - это listener(observer) а event c# - синтаксический сахар

Kirill
28.08.2018
09:06:28
и как изменить цвет этой линии
Ну Гугл же знает. вопросы лучше сперва гуглить, а вот если и так не понятно, то спрашивать

Roma
28.08.2018
09:06:53
Я так и сделал

Admin
ERROR: S client not available

Karim
28.08.2018
09:07:30
Главное правильно пользоваться и не забывать отписываться. Инструмент удобный, но без понимания работы можно дров наломать
насчет MessagingCenter. Был один случай, когда страница подписывалась на событие MessagingCenter. отрабатывать событие должно было даже когда страница скрыта, то есть подписываться на Appearing и отписываться на Disappearing не получится. Как тогда работать с ним - непонятно

Roma
28.08.2018
09:09:16
нашол, что через рендер делать надо, Я не разу не юзал Рендер, не понятно какое своство отвечает за эту линию

Roma
28.08.2018
09:13:27
не совсем для меня понятные примеры, Спасибо, буду разбератся)

Karim
28.08.2018
09:13:48
Подписываться в конструкторе, отписываться в Dispose
Dispose не является стандартным событием в Lifecycle страницы. откуда он появился? обычный деструктор?

vladimir
28.08.2018
09:14:22
нашол, что через рендер делать надо, Я не разу не юзал Рендер, не понятно какое своство отвечает за эту линию
Значит надо загуглить, что такое рендерер и как его использовать И бинго

Roma
28.08.2018
09:14:35
ну да, Я примерно, теперь хоть знаю куда копать

Google
Artem
28.08.2018
09:38:29
Dispose не является стандартным событием в Lifecycle страницы. откуда он появился? обычный деструктор?
override OnParrentSet){ base.OnParrentSet(); if(parent==null) Dispose(); } Я вот так делаю и никогда проблем с отписками не было

Karim
28.08.2018
10:47:09
Можно и в деструкторе
Он отрабатывает во время удаления из navigationpagr.navigationstack?

Max
28.08.2018
10:47:37
Он отрабатывает во время удаления из navigationpagr.navigationstack?
Никто точно не знает когда он отработает

Karim
28.08.2018
10:49:11
Никто точно не знает когда он отработает
Ладно, спрошу по-другому. Когда я ещё раз открою объект этой страницы, предыдущая страница уже вызовет метод Dispose?

Max
28.08.2018
10:49:57
Поэтому лучше из NavigationService это делать

Ручками вызывать (Page as IDisposable)?.Dispose()

Тогда точно

Андрей Родионович
28.08.2018
11:08:34
Ребята, подскажите пожалуйста по поводу 2-х вопросов 1) Чем вы пользуетесь для проектирования дизайна аппов 2) Почему яблочники уже неделю что то проверяют(скрин ниже)



Не могу testflight из-за этого подрубить

Александр
28.08.2018
11:09:26
Посмотри почту

Андрей Родионович
28.08.2018
11:09:27
Можно ли как то ускорить это?

Александр
28.08.2018
11:09:42
они ждут подтверждения от тебя что ты реальный человек

Андрей Родионович
28.08.2018
11:09:47
Оо

Окей, спасибо

Александр
28.08.2018
11:09:53
на почте должны быть инструкции

Андрей Родионович
28.08.2018
11:09:56
Ща проверимс

vladimir
28.08.2018
11:11:10
Не могу testflight из-за этого подрубить
у некоторых месяцами ничего не подтверждают, у некоторых за пару дней всё проходит прочитайе даты, когда должно там всё пройти, если уже даты прошли, то смело в поддержку пишите - они отвечают

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