Samsung / Tizen.CircularUI

Tizen Wearable CircularUI project is to develop an open source software motivate software developer to creating Tizen Wearable Xamarin Forms app more easily and efficiently.
Other
80 stars 32 forks source link

IndicatorView crashes application #330

Closed patuwwy closed 4 years ago

patuwwy commented 4 years ago

Describe the bug Adding IndicatorView crashes application.

To Reproduce

...
    <CarouselView ...

    ...

    </CarouselView>
    <IndicatorView x:Name="indicatorView"
            IndicatorColor="LightGray"
            SelectedIndicatorColor="DarkGray"
            HorizontalOptions="Center"
            />

</AbsoluteLayout>

Environment (please complete the following information):

Device: SM-R800 (wearable-4.0.0.7) ElottieSharp.Forms v0.9.5-preview Tizen.NET v5.0.0.14629 Tizen.Wearable.CircularUI v1.5.0-pre7

myroot commented 4 years ago

Hi @patuwwy Did you set a IndicatorView_Experimental flag? IndicatorView is preview state so need to set flag before init Xamarin.forms

        static void Main(string[] args)
        {
            var app = new Program();
            Forms.SetFlags("IndicatorView_Experimental");
            Forms.Init(app);
            Tizen.Wearable.CircularUI.Forms.FormsCircularUI.Init();
            app.Run(args);
        }
myroot commented 4 years ago

Here is my test code it works well except some appearance issue

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="IndicatorViewTest.MainPage">
    <ContentPage.Content>
        <AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
            <CarouselView AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" BackgroundColor="Red" IndicatorView="{x:Reference indicatorView}">
                <CarouselView.ItemsSource>
                    <x:Array Type="{x:Type x:String}">
                        <x:String>1</x:String>
                        <x:String>2</x:String>
                        <x:String>3</x:String>
                        <x:String>4</x:String>
                        <x:String>5</x:String>
                    </x:Array>
                </CarouselView.ItemsSource>
                <CarouselView.ItemTemplate>
                    <DataTemplate>
                        <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" BackgroundColor="BlueViolet" Margin="10">
                            <Label FontSize="30" Text="{Binding .}" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"/>
                        </StackLayout>
                    </DataTemplate>
                </CarouselView.ItemTemplate>
            </CarouselView>
            <IndicatorView x:Name="indicatorView"
            IndicatorColor="LightGray"
            SelectedIndicatorColor="DarkGray"
            HorizontalOptions="Center" AbsoluteLayout.LayoutBounds="0, 0, 360, 360" AbsoluteLayout.LayoutFlags="None"/>
        </AbsoluteLayout>
    </ContentPage.Content>
</ContentPage>
myroot commented 4 years ago

And We not support IndicatorColor, SelectedIndicatorColor, You can use only system default appearance

patuwwy commented 4 years ago

And We not support IndicatorColor, SelectedIndicatorColor, You can use only system default appearance

What is the reason for not supporting these properties? When creating an application we use non-standard colors and almost always have a problem with controls that cannot be customized. Please, add support for these properties.

myroot commented 4 years ago

What is the reason for not supporting these properties?

Because, not supported in Tizen Native UI Frameworks https://docs.tizen.org/application/native/api/wearable/5.5/group__Elm__Index.html

We try to depend on only Tizen public API as possible as. to change a color, we maybe use internal api and it does not guarantee backward-compatibility, and also update color may not be possible.

We will consider to support IndicatorColor and SelectedIndicatorColor, if exist way to update

patuwwy commented 4 years ago

Thank You for Your support and useful informations!

Did you set a IndicatorView_Experimental flag? IndicatorView is preview state so need to set flag before init Xamarin.forms

That's what I missed!