
Sasha
30.07.2018
12:42:22

vladimir
30.07.2018
12:42:44
ну а вы создали этот файл?
а, и это должно быть Resource.Drawable.Id
а нет

Google

vladimir
30.07.2018
12:43:15
стоп
просто Resource.Drawable

Sasha
30.07.2018
13:02:51
Я раньше когда делал рендер элементов, кажется, никаких файлов не создавал

vladimir
30.07.2018
13:04:17
drawable - это некоторый файл в папке Resources/drawable
обычно xml
и чтобы к нему доступ получить вы пишете Resource.Drawable.filename
ну тогда перечитайте реализацию, которую вы нашли в интернете, как вы и что делаете

Sasha
30.07.2018
13:06:42
Я смотрел на этот пример, здесь о файле ничего не говорится
http://dev.androidteam.ru/

vladimir
30.07.2018
13:09:51
ну там ресурсы встроенные используются Android.Resource.Id.Background

Sasha
30.07.2018
13:09:59
Может вы посоветовать как лучше сделать, чтобы линия прогресса в XF ProgressBar имела границу и закругленные?

vladimir
30.07.2018
13:10:03
нет там никаких clipDrawable
должно работать с этим примером
хотя вы нигде закругление почему-то не поставили

Google

Sasha
30.07.2018
13:13:03
Оно мне показывает весь контрол зеленым, хотя я поставил прогресс в 0.5, почему оно может не отражать самый прогресс?
Я тупанул сейчас переделаю под градиент дровабле и там поставлю корнер радиус

vladimir
30.07.2018
13:25:32

Sasha
30.07.2018
13:30:34
Когда я ставил в простой ProgressBar контрол значение прогрес в 0.5, оно показывало норм

vladimir
30.07.2018
13:32:09
вы используете не Android.Widget.ProgressBar?

Sasha
30.07.2018
13:38:39
Подскажите тогда как его лучше использовать, я когда поставил наследования от Android.Widget.ProgressBar оно подчеркнуло OnElementPropertyChanged и OnElementChanged.

vladimir
30.07.2018
13:43:45
ну тот пример выше конкретно для этого виджета
что вы наследуете-то?
эти методы у рендереров есть только, вроде

Sasha
30.07.2018
13:47:33
Я наследую от ПСЛ класса, который там наследуется от ProgressBar.
Тогда вопрос по другому, как мне сделать через рендеринг, чтобы линия прогресса Progressbar элемента имела обводку и закругления?

Kirill
30.07.2018
13:53:11

Sasha
30.07.2018
13:56:14
Вы предлагаете что бы я поставил типа на бэкграунд картинку, и прямо на него прогресс бар?

Kirill
30.07.2018
13:57:34
гугли как это делается под андроид нативно и через рендерер реализуй

Sasha
30.07.2018
13:57:59
Можно попробовать boxview рендерингом задать границы и закругления а затем на верх наложить прогресс бар?

Google

vladimir
30.07.2018
13:58:51
https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.progressbar?view=xamarin-forms
вы это используете?

Sasha
30.07.2018
14:00:42

vladimir
30.07.2018
14:01:32
ну всё норм, там в рендерере используется Android.Widget.ProgressBar
https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs
что вас останавливает, я не понимаю

Sasha
30.07.2018
14:13:41
Точнее работает, но не так как я хочу

vladimir
30.07.2018
14:14:15
а как оно работает, и как вы хотите?

Sasha
30.07.2018
14:17:10
А мне нужно чтобы была еще линия прогресса, типа это обычный контрол при тех же настройках, но видно что значение 0,5. На предыдущем рисунке этого видно не было

Sasha
30.07.2018
14:22:22

vladimir
30.07.2018
14:23:28
ещё раз код покажите, только исправленный

Sasha
30.07.2018
14:25:14
ещё раз код покажите, только исправленный
var progressDrawable = new GradientDrawable();
progressDrawable.SetStroke(1, Android.Graphics.Color.Black);
progressDrawable.SetCornerRadius(25);
progressDrawable.SetColorFilter(Android.Graphics.Color.LightBlue, PorterDuff.Mode.SrcIn);
var backgroundDrawable = new GradientDrawable();
backgroundDrawable.SetStroke(1, Android.Graphics.Color.Black);
backgroundDrawable.SetCornerRadius(25);
backgroundDrawable.SetColorFilter(Android.Graphics.Color.LightGreen, PorterDuff.Mode.SrcIn);
LayerDrawable layerDrawable = new LayerDrawable(
new Drawable[] { progressDrawable, backgroundDrawable });
Control.ProgressDrawable = layerDrawable;
Думаю этот самый правильный код

vladimir
30.07.2018
14:26:16
progressDrawable.SetColorFilter(Android.Graphics.Color.LightBlue, PorterDuff.Mode.SrcIn); зачем тип наложения цветов устанавливаете?
делайте SetColor
в обоих случаях
вместо SetColorFilter

Google

vladimir
30.07.2018
14:28:56
и вы не выставили
layerDrawable.SetId(0, Android.Resource.Id.Background);
layerDrawable.SetId(1, Android.Resource.Id.Progress);

Sasha
30.07.2018
14:30:51

vladimir
30.07.2018
14:31:28
так нужен не backgroundDrawable, а Background
и то же самое для Background

Sasha
30.07.2018
14:41:14

vladimir
30.07.2018
14:41:56
вы поменяли в обоих случаях SetColorFilter на SetColor?

Admin
ERROR: S client not available

Sasha
30.07.2018
14:42:33

vladimir
30.07.2018
14:42:36
и вы добавили
layerDrawable.SetId(0, Android.Resource.Id.Background);
layerDrawable.SetId(1, Android.Resource.Id.Progress);
перед присвоением ProgressDrawable?

Sasha
30.07.2018
14:42:40
var progressDrawable = new GradientDrawable();
progressDrawable.SetStroke(1, Android.Graphics.Color.Black);
progressDrawable.SetCornerRadius(25);
progressDrawable.SetColor(Android.Graphics.Color.Blue);
var backgroundDrawable = new GradientDrawable();
backgroundDrawable.SetStroke(1, Android.Graphics.Color.Black);
backgroundDrawable.SetCornerRadius(25);
backgroundDrawable.SetColor(Android.Graphics.Color.LightGreen);
LayerDrawable layerDrawable = new LayerDrawable(
new Drawable[] { progressDrawable, backgroundDrawable });
layerDrawable.SetId(0, Android.Resource.Id.Background);
layerDrawable.SetId(1, Android.Resource.Id.Progress);
Control.ProgressDrawable = layerDrawable;


vladimir
30.07.2018
14:44:35
поймайте свойство Progress в OnElementPropertyChanged по сле base.OnElementPropertyChanged
и гляньте значение Progress в Element
также гляньте какие значения стоят у Control для Max, Min, Progress
может оно по какой-то причине в нуль сбросилось
LayerDrawable layerDrawable = new LayerDrawable(
new Drawable[] { progressDrawable, backgroundDrawable });
местами поменяйте progressDrawable и backgroundDrawable
а и вам нужно использовать ClipDrawable
перепроверьте всё по туторилу
много несоответствий

Google

Sasha
30.07.2018
14:48:41

vladimir
30.07.2018
14:49:23
тут не пробовать надо
так и должно быть

Dim
30.07.2018
14:51:00

vladimir
30.07.2018
14:51:35

Dim
30.07.2018
14:54:20
вы ознакомились с этим?
я создал свой custom render унаследованый от TabbedPageRenderer, только теперь немогу понять как с ним работать ,

vladimir
30.07.2018
14:55:19
по аналогии переопределите метод OnElementChanged
и в нём уже делайте манипуляции с Control


Sasha
30.07.2018
14:57:04
ну и вместо progressDrawable должен быть clipDrawable, а его уже инициализировать с progressDrawable
Посмотрите пожалуйста, я проверил сейчас код выглядит так, но он выглядит по старому но цвет уже синий. Что-то никак не могу понять чего не работает
var progressDrawable = new GradientDrawable();
progressDrawable.SetStroke(1, Android.Graphics.Color.Black);
progressDrawable.SetCornerRadius(25);
progressDrawable.SetColor(Android.Graphics.Color.LightBlue);
var backgroundDrawable = new GradientDrawable();
backgroundDrawable.SetStroke(1, Android.Graphics.Color.Black);
backgroundDrawable.SetCornerRadius(25);
backgroundDrawable.SetColor(Android.Graphics.Color.LightGreen);
ClipDrawable clipProgress = new ClipDrawable(progressDrawable, GravityFlags.Left, ClipDrawableOrientation.Horizontal);
LayerDrawable layerDrawable = new LayerDrawable(
new Drawable[] {backgroundDrawable, clipProgress});
layerDrawable.SetId(0, Android.Resource.Id.Background);
layerDrawable.SetId(1, Android.Resource.Id.Progress);
Control.ProgressDrawable = layerDrawable;


vladimir
30.07.2018
14:59:21
выглядит нормально
попробуйте очистить решение с bin/obj
только вместо
if (view is TabLayout tabLayout)
сделайте
if (view is BottomNavigationView navigationView)
и уже с ним манипуляции проводите
возможно понадобится рекурсия, как в самом нижнем методе

Sasha
30.07.2018
15:09:22
Сейчас контрол выглядит так Только цвет светло синий

vladimir
30.07.2018
15:16:57
не знаю, что ещё сделать тогда
либо может ещё кто тут подскажет, либо свой велосипед делать из BoxView
попробуй ещё самим выставлять Progress в OnElementPropertyChanged