@xamarin_russia

Страница 322 из 619
Max
15.03.2018
13:22:11
Ну вот суть этой библиотеки, что кинул, как раз в этом
Вчера в общем заюзал Settings. На эмуляторах работает прекрасно. На реально Droid чет отвалилась эта тема (не сохраняет объекты и не загружает их) Кажется проблема с Permissions, надо какие-то запрашивать специфические рантайм или нет?

Google
Kirill
15.03.2018
13:26:01
Max
15.03.2018
13:26:11
разве вот так не должно работать?

на эмуляторе-то работает (и на Droid, и на IOS)

Алексеев
15.03.2018
13:26:55
Со стрингами должно

Dmitriy
15.03.2018
13:40:16


Max
15.03.2018
13:41:20
Ну, надо сначала добавить индикатор в стек, а потом уже создавать scrollView

vladimir
15.03.2018
13:42:42
не, не в этом проблема

он создаёт индикатор, ожидает, и убирает его и это до того как оно всё отрисуется

Dmitriy
15.03.2018
13:43:57
Как убрать его после отрисовки?

Google
vladimir
15.03.2018
13:44:19
всмысле его надо врубить после отрисовки

и остановить после загрузки данных

там какая-то каша в коде

?‍?
15.03.2018
13:44:42
всмысле его надо врубить после отрисовки
после загрузки или отрисовки?

Max
15.03.2018
13:45:34
Как убрать его после отрисовки?
Индикатор-часть страницы, нужен чтобы дать видимость ЗАГРУЗКИ данных, при отрисовке он не будет работать, ибо сам является частью этой же страницы

страница рисуется целиком в твоем случае

vladimir
15.03.2018
13:46:06
он должен быть в макете изначально просто делаешь ему IsRunning, когда грузишь данные (лучше просто сбаиндить) а тут выглядит так, будто создаётся макет, во время этого также грузятся данные, они загрузятся, имакет только после этого создастсся

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

Dmitriy
15.03.2018
13:53:51
Время занимает именно построение дерева на основе данных

а данные быстро загружаются

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

Max
15.03.2018
13:56:34
Твой синхронный запуск как раз и дает задержку

(хотя я тут не вижу вообще загрузки данных)

сделай… await Indicator(); (если это метод с долгим процессом)

Alexander
15.03.2018
14:02:58
как реализовать такой эффект?





Google
Alexander
15.03.2018
14:03:15
при скролле вверх/вниз

Max
15.03.2018
14:04:15
ничего не меняется
А что такое Indicator?

Dmitriy
15.03.2018
14:04:23
да метод просто

Max
15.03.2018
14:04:41
да метод просто
вопрос в другом, какой это метод

Dmitriy
15.03.2018
14:05:53
асинхронный

Max
15.03.2018
14:06:18
асинхронный
он помечен как асинхронный, но выполняется синронно, потому что там банально нет нигде await даже

Dmitriy
15.03.2018
14:07:20
я не представляю куда его там ставить

Max
15.03.2018
14:08:40
я не представляю куда его там ставить
попробуй добавлять не всю коллекцию, а частями

Dmitriy
15.03.2018
14:09:05
это поможет отобразить индикатор?

Kirill
15.03.2018
14:09:06
я не представляю куда его там ставить
а тут никуда и не поставишь. Самый номр вариант - через байндинг управлять видимостью индикатора. во вью модели, когда данные загрузились - меняешь проперти и индикатор скрывается

Dmitriy
15.03.2018
14:09:38
да он даже не отрисовывается

страница разом появляется

готовая

Max
15.03.2018
14:10:04
готовая
ну так ты ее собственно так и создаешь

сначала грузишь данные

а потом отрисовываешь

чтобы он сначала отрисовал, нужен binding

Dmitriy
15.03.2018
14:11:15
Вот так? <ActivityIndicator x:Name="activityIndicator" IsRunning="{Binding IsBusy}"/>

Ничего не меняется, по-прежнему всё

Google
Dmitriy
15.03.2018
14:17:33
а потом отрисовываешь
а как я отрисую что-то, если отрисовывать без данных нечего?

vladimir
15.03.2018
14:17:39
да так, только теперь ещё добавивь в свой конструктой Task.Run(LoadData);

Max
15.03.2018
14:17:53
а как я отрисую что-то, если отрисовывать без данных нечего?
ты отрисуешь пустой контейнер с индикатором

как это нечего

vladimir
15.03.2018
14:18:47
и внутри своего LoadData делай IsBusy = true; await AsyncMethod(); IsBusy = false;

Max
15.03.2018
14:19:37
и для начала надо бы IsBusy создать

и навешать на него OnPropertyChanged

Dmitriy
15.03.2018
14:20:46
а можно как для хлебушка объяснить, пожалуйста?

Max
15.03.2018
14:22:24
Dmitriy
15.03.2018
14:23:31
я бы сказал, что тут нечто похожее на mvc. проект не я делал

ну в принципе, понимаю

Max
15.03.2018
14:25:40
я бы сказал, что тут нечто похожее на mvc. проект не я делал
Ну в общем. У тебя во ViewModel твоей страницы должно быть поле private bool _isBusy; public bool IsBusy { get { return _isBusy; } set { _isBusy = value; OnPropertyChanged(); } }

потом у тебя должна быть private static PageNameViewModel _vm = new PageNameViewModel()

в конструкторе страницы ты должен делать public PageName(){ InitCom… BindingContext = _vm; }

потом стоит заменить твой StackLayout на ListView

и сделать публичную коллекцию с твоими элементами private ObservableCollection<MyType> _collection; public ObservableCollection<MyType> Collection get { return _collection; } set { _collection = value; OnPropertyChanged(); } }

и сделать биндинг ItemSource у ListView к этой коллекции

OnPropertyChanged(); Нужен везде чтобы сообщать UI об измненении контекста внутри

Dmitriy
15.03.2018
14:36:12
не особо. не понимаю к чему ведешь вообще

Google
An
15.03.2018
14:38:17
Как в webview показать pdf ?

Без стороннихх сервисов типа гугл драйва

Slava
15.03.2018
14:39:50
Как в webview показать pdf ?
зачем в вебвью? показывай в pdf ридере

An
15.03.2018
14:40:34
Нужно через вебвью, чтобы можно было запустить на печать

Dmitriy
15.03.2018
14:40:35
вьюмодели как таковые не используются у нас. не моя идея. как я в листвью потом нарисую дерево?

Dmitriy
15.03.2018
14:41:38
DemoTreeView

vladimir
15.03.2018
14:41:42
Max
15.03.2018
14:41:47
DemoTreeView
мне это вообще ни о чем не говорит

что это, список полей или что

Dmitriy
15.03.2018
14:42:32
да, список полей

функционал как в проводнике

Max
15.03.2018
14:43:26
да, список полей
Ну а зачем тебе мучить StackLayaout

если есть специальная структура для отображения списков

Которая притом сама поддерживает прокрутку

Dmitriy
15.03.2018
14:44:04
Поля вложены друг в друга

Max
15.03.2018
14:44:04
и нативные рендеры оптимизации (например RecyclerView)

ListView позволяет рисовать любые ячейки

и отображать в них данные из коллекции IEnumerable

Dmitriy
15.03.2018
14:45:08
Ты мне сейчас предлагаешь ради одного индикатора перекопать всё приложение сверху до низу

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