
FinniV
15.03.2018
11:34:29

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

Kirill
15.03.2018
13:25:11

Google

Max
15.03.2018
13:25:38

Алексеев
15.03.2018
13:25:51

Kirill
15.03.2018
13:26:01

Max
15.03.2018
13:26:11
разве вот так не должно работать?
на эмуляторе-то работает (и на Droid, и на IOS)

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

Kirill
15.03.2018
13:26:56

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

Max
15.03.2018
13:44:14

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
Время занимает именно построение дерева на основе данных
а данные быстро загружаются
предпоследняя строчка в таске глушит приложение на несколько секунд

Slava
15.03.2018
13:56:32

Max
15.03.2018
13:56:34
Твой синхронный запуск как раз и дает задержку
(хотя я тут не вижу вообще загрузки данных)
сделай… await Indicator(); (если это метод с долгим процессом)

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

Google

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

Dmitriy
15.03.2018
14:03:45

Max
15.03.2018
14:04:15

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
потом у тебя должна быть
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

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

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

Max
15.03.2018
14:41:18

Dmitriy
15.03.2018
14:41:38
DemoTreeView

vladimir
15.03.2018
14:41:42

Max
15.03.2018
14:41:47
что это, список полей или что

Dmitriy
15.03.2018
14:42:32
да, список полей
функционал как в проводнике

Max
15.03.2018
14:43:26
если есть специальная структура для отображения списков
Которая притом сама поддерживает прокрутку

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

Max
15.03.2018
14:44:04
и нативные рендеры оптимизации (например RecyclerView)
ListView позволяет рисовать любые ячейки
и отображать в них данные из коллекции IEnumerable

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