@xamarin_russia

Страница 43 из 619
Andrey
26.02.2017
07:48:01
Девайсы

IM2STRNG4DTWRLD
26.02.2017
07:48:08
Развораяивается же на устройстве, я правильно понял?

Или оно с эмулятором работает?

Andrey
26.02.2017
07:49:10
Кастомные в горилле можно настроить, но надо тащить её в проект. Иногда некогда, иногда мешает и прочее

Google
Ivan
26.02.2017
07:49:30
Или оно с эмулятором работает?
на устройстве ставится "плейер"

связка такая: VS с плагином -> "сервер" в трее на ПК -> устройство (или несколько) с "плейером"

во время верстки все видно на устройствах в реальном времени

можно видеть сразу и на андроид и на айос и на планшетах

одновременно

Yury
26.02.2017
10:29:43
Никто не сталкивался с тем, что xamarin forms previewer не работает, вообще?
Была такая проблема, но после обновления чего только можно (xamarin, пакетов xamarin, Java jdk) все же удалось завести

Причем у меня community версия

Ssjuk
26.02.2017
10:58:04
всем привет! ребята, кто может помочь с таким вопросом: использовал HttpClient для загрузки файлов на сервер, сейчас хочу перейти на WebClient для того, чтобы была возможность отслеживать процесс загрузки файла с целью отображения этого в прогресс баре, но у меня не получается сделать вообще загрузку файла на сервер через WebClient

вот рабочий код HttpClient foreach (var i in files) { using (var client = new HttpClient()) { using (var content = new MultipartFormDataContent()) { var values = new[] { new KeyValuePair<string, string>("lid", App.user.lid), new KeyValuePair<string, string>("job", jobId), new KeyValuePair<string, string>("type", 1.ToString()), }; foreach (var keyValuePair in values) { content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key); } while () { var fileContent = new StreamContent(i.GetStream()); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = i.Path, }; if (i.Path.ToLower().Contains("mov") || i.Path.ToLower().Contains("mp4") || i.Path.ToLower().Contains("m4v")) { int format = i.Path.ToLower().LastIndexOf('.'); string form = i.Path.ToLower().Substring(format + 1); fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("video/" + form); } else { int format = i.Path.ToLower().LastIndexOf('.'); string form = i.Path.ToLower().Substring(format + 1); fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/" + form); } content.Add(fileContent); var requestUri = "http://***.com/upload"; var result = await client.PostAsync(requestUri, content); //await Task.Delay(100); } } } }

вот что я пытаюсь сделать foreach (var f in files) { WebClient client = new WebClient(); //byte[] bytes = new byte[f.GetStream().Length]; //f.GetStream().Read(bytes, 0, (int)f.GetStream().Length); NameValueCollection parameters = new NameValueCollection(); parameters.Add("lid", App.user.lid); parameters.Add("job", jobId); parameters.Add("type", 1.ToString()); client.QueryString=parameters; client.Headers.Add("Content-Disposition", "attachment; filename=\"" + f.Path.Substring(f.Path.LastIndexOf('/')+1)+"\";"); if (f.Path.ToLower().Contains("mov") || f.Path.ToLower().Contains("mp4") || f.Path.ToLower().Contains("m4v")) { int format = f.Path.ToLower().LastIndexOf('.'); string form = f.Path.ToLower().Substring(format + 1); //client.Headers.Add("Content-Type", "video/" + form); client.Headers.Add(HttpRequestHeader.ContentType, "video/" + form); } else { int format = f.Path.ToLower().LastIndexOf('.'); string form = f.Path.ToLower().Substring(format + 1); //client.Headers.Add("Content-Type", "image/" + form); client.Headers.Add(HttpRequestHeader.ContentType, "image/" + form); } var response= client.UploadFile(new Uri("http://***.com/upload"), "POST", f.Path); }

Andrey
26.02.2017
11:02:04
Вот нахрена такие портянки в чат кидать, когда есть gist.github и pastebin. И кстати больше чем уверен что гугл и стаковерфло учше бы ответили на этот вопрос.

Кита
26.02.2017
11:03:30
угу

тут никто это читать не будет

Google
Ssjuk
26.02.2017
11:03:42
в следующий раз обязательно залью на github, если бы гугл или стековерфло ответили на этот вопрос я бы сюда не писал

Akhmed
26.02.2017
11:03:52
http://stackoverflow.com/questions/20661652/progress-bar-with-httpclient

Ssjuk
26.02.2017
11:06:23
Nikolay
26.02.2017
13:12:26
Случайно нет никаких статей по лэйаутам формс на русском? Пытаюсь сделать как в мануале — желаемого результата не могу добиться

Vladislav
26.02.2017
15:10:07
На метаните вроде было?

Nikolay
26.02.2017
15:29:24
Ssjuk
26.02.2017
15:34:14
https://metanit.com/sharp/xamarin/

Nikolay
26.02.2017
15:36:46
спасибо

Ilya
26.02.2017
19:49:48
Всем привет, Мб кто то подскажет, есть у меня listview cachingstrategy=recycle, когда я нажимаю на cell он у меня должно показать скрытый контент и меняться высота , но при нажатие, изменяется все элементы с шагом на высоту экрана, как буду то там тоже было нажатие, в дебаге ивент сработал только на нажатый элемент, с retain стратегия -тормоза при скроле. Думаю не у меня одного подобная проблема была с листом, спасибо

Kirill
26.02.2017
20:02:25
HasUnevenRows=true?

Kirill
27.02.2017
09:13:51
плюсую к предыдущему ответу, но также еще нужно взглянуть на темплейт ячейки, т.к. если там написано без оптимизаций, то тормозить все равно будет, например, если count > 50
Количество элементов не при чем) если при скролле создаются новые ячейки, то будут тормоза при плохо реализованной ячейке

Damir
27.02.2017
09:17:09
у меня есть список с темплейтом из стеклэйаут и второй список с absolutelayout - в первом списке у меня не более 10 элементов, все норм скроллится, лагов не заметно. а во втором списке у меня больше 30-40 айтемов, и когда я перенес темплейт ячейки со стеклейаут во второй список, то тормоза были дикими

я бы сказал, что тут все взаимосвязано

Кита
27.02.2017
11:28:56
> @dbeylkhanov стеклэйаут вот тут и проблема)

Damir
27.02.2017
11:29:39
да, но на небольшом кол-ве айтемов сгодится

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

поэтому юзаю панельку где ею можно обойтись. или там гридами и т.д.

Kirill
27.02.2017
11:31:14
я бы сказал, что тут все взаимосвязано
при малом количестве ячеек нет тормозов, ибо при этом при открытии страницы создаются все ячейки и сдвигаются, а при большом количестве - ячейки пересоздаются/переиспользуются, отсюда и тормоза. Необходимо оптимизировать ячейку.

Кита
27.02.2017
11:32:15
> Кита стеклэйаут запретите его к использованию на проекте вообще. Советую

Google
Ilya
27.02.2017
11:58:57
Так насчет стека -> заблуждение создайте 500 лейблов в стеке и в гриде и увидите, что грид считается медленее в два раза

HasUnevenRows=true?
Да стоит

Kirill
27.02.2017
12:01:58
Так насчет стека -> заблуждение создайте 500 лейблов в стеке и в гриде и увидите, что грид считается медленее в два раза
любым инструментом необходимо правильно пользоваться. Можно сделать что бы грид считал на порядок быстрее, задав размер Star или Absolute

Кита
27.02.2017
12:42:40
> Ilya гриде задайте в абсолют лэйауте или релейтиве эти 500 лейблов и вообще удивитесь. у нас в команде и гриды то неохотно используются

Damir
27.02.2017
12:56:32
прост если на xf писать одними абсолютами, то ппц скок геммора с проверкой того что получается на выходе

Kirill
27.02.2017
13:09:24
У нас и стек и грид и абсолют используются, плюс енсколько своих общего назначения. для ячеек свои кастомные лейауты. В первую очередь вложенность должна быть минимальной

Ilya
27.02.2017
13:10:50
Xf можно для меня расшифровать? Типа формс?

Andrey
27.02.2017
13:25:18
Вроде стак лайаут быстр, не? Он же не считает высоту, а получает по контенту, меньше циклов в сумме. Гриды я реже юзаю чем стаки

Кита
27.02.2017
13:59:43
прост если на xf писать одними абсолютами, то ппц скок геммора с проверкой того что получается на выходе
XF. Геморра больше когда заказчик приходит, а релиз у него вчера, а он нашел какие-то тормоза или падения. Да и потом мы стараемся анимировать UI. Лучше всего это получается в абсолюте

Ilya
27.02.2017
14:08:46
+

Вроде стак лайаут быстр, не? Он же не считает высоту, а получает по контенту, меньше циклов в сумме. Гриды я реже юзаю чем стаки

Damir
27.02.2017
14:15:48
XF. Геморра больше когда заказчик приходит, а релиз у него вчера, а он нашел какие-то тормоза или падения. Да и потом мы стараемся анимировать UI. Лучше всего это получается в абсолюте
это все субъективно и индивидуально. я исхожу из конкретной ситуации, и решаю что имеет смысл применить в данном случае, а не лепить все под одну гребенку

Кита
27.02.2017
14:19:00
Вроде стак лайаут быстр, не? Он же не считает высоту, а получает по контенту, меньше циклов в сумме. Гриды я реже юзаю чем стаки
рассчет по контенту все равно происходит. Меньше расчетов - быстрее рендеринг. Если заранее известен размер контента то и следует его задать статично. Это менее гибко при изменении например ТЗ или спецификации UI но такие вещи происходят редко

Ilya
27.02.2017
14:19:43
Я согласен

Andrey
27.02.2017
15:02:56
Ну с прибитыми размерами они везде быстрые, хоть в вебе хоть где. Я про резину скорее говорил

Кита
27.02.2017
15:11:01
Ну с прибитыми размерами они везде быстрые, хоть в вебе хоть где. Я про резину скорее говорил
а кто вам сказал что у нас не резиновый UI? Резиновый. Относительные размеры почти везде используются вместе со статичными. Дело только в том что они расчитываются несколько заранее. Не в момент отрисовки чилдов

Google
Кита
27.02.2017
15:11:33
просто тянется контент не везде. Ну и в тех местах где это не критично

зато на бюджетофонах проблем нет

O'Miay
27.02.2017
15:17:41
Есть тут кто?

Му
27.02.2017
15:18:14
?

O'Miay
27.02.2017
15:19:26
Кто-нить сталкивался, собираю проект под Android 7, а обробочик нажатия на кнопку, то работает, то нет. Хотя если собирать под 6-ю версию такого глюка нету

Andrey
27.02.2017
15:23:58
зато на бюджетофонах проблем нет
Тоже к этому на своих граблях доковылял :)

O'Miay
27.02.2017
15:27:01
Покажите код (залейте на pastebin, чтобы подсветка и форматирование были)
Там очень при очень много файлов. Проблема не в коде 100%, проблема с Andriud 7

Andrey
27.02.2017
15:43:08
Проблема-то возможно и с андроид, но возникает наверняка при определённом вызове, который и предмет моего вопроса, а не все файлы

Ilya
27.02.2017
16:49:36
Это случайно не кастомный контрол?

Там очень при очень много файлов. Проблема не в коде 100%, проблема с Andriud 7

Алексей
27.02.2017
17:13:42
Всем привет. Собрал в одном месте все чаты для программистов - @Chats_Developers, пользуйтесь на здоровье. Ваш чат у нас тоже есть, не удаляйте это сообщение.

Slava
27.02.2017
17:17:00
?

Alexander
27.02.2017
18:16:19
Вот ссылка на него

https://t.me/Fsharp_chat

Александр
28.02.2017
08:05:29
Всем привет. Для интереса пишу свой секундомер, сделал кнопку на форме. Создал для нее объект, Button btnSWStart = FindViewById<Button?Resource.Id.swBtnStart); и пытаюсь написать обработку по ее нажатию btnSWStart.Click += delegate { btnSWStart.Text = isSWrun ? "@string/swPause" : "@string/swStart"; }; После запуска выдает ошибку System.NullReferenceException: Object reference not set to an instance of an object. кнопка находится на дополнительном layout, а не на Main.

Ssjuk
28.02.2017
08:07:26
А почему нельзя повесить событие на swBtnStart?

Александр
28.02.2017
08:10:51
а я разве не это делаю?

Google
Александр
28.02.2017
08:18:31
такая ошибка возникает только для тех кнопок которые не расположены на главном layout.

в хамарине надо как-то формы заранее определять?

Александр
28.02.2017
08:42:05
Вроде бы нет, т.к. кнопка на форме есть и она находится при идентификации

Akhmed
28.02.2017
08:42:29
а можешь убедиться что он не null под дебагом?

на что именно выдается null ?

Andrey
28.02.2017
08:43:52
Inflate?

Александр
28.02.2017
08:58:42
с одного перехожу на другой и обрабатываю кнопки на втором

там же весь код в MainActivity?

https://github.com/Hade5/MyTimer может так понятнее станет

Kirill
28.02.2017
09:18:40
с одного перехожу на другой и обрабатываю кнопки на втором
SetContentView вызываается только один раз. для перехода на другой экран - надо запускать другое активити StartActivity(typeof(SecondActivity)); Ну или использовать фрагменты. Ну и, естественно FindViewById<Button?Resource.Id.swBtnStart) возвратит null, потому что в Resource.Layout.Main нет такой кнопки, а ищет его там

Александр
28.02.2017
09:22:35
А второй активист от ,главного наследовать? И почему ищет в layout, а задаю я по глобальной id?

Kirill
28.02.2017
09:35:17
А второй активист от ,главного наследовать? И почему ищет в layout, а задаю я по глобальной id?
не надо насоедовать, так же от Activity. Разные активити - разные экраны. Вот так работает механизм в андроиде. Находит только на текущем лейауте

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