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

[CircularUI] [CirclePage.ActionButton] Issue when using entry #76

Closed jsobczuk closed 6 years ago

jsobczuk commented 6 years ago

I have 2 controls on CircularPage. One is entry located on top and ActionButton on bottom of the screen.

action1

Problem occurs when entry is focused. ActionButton is not hiding under keyboard, it moves along with a keyboard.

action2

Can you fix this? Or i need to find a way to not use this two controls together? In my opinion it shouldn't be working like that :)

jkpu commented 6 years ago

If you want to use entry in CirclePage or circle device. Please use PopupEntry(https://samsung.github.io/Tizen.CircularUI/guide/PopupEntry.html) instead of Entry. We have added PopupEntry becaue there were many issue in Entry with circular device.

jsobczuk commented 6 years ago

I made a simple application with PopupEntry based on link you have sent to me. Here is the xaml code:

<?xml version="1.0" encoding="utf-8" ?>
<cui:CirclePage xmlns="http://xamarin.com/schemas/2014/forms"
                xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                xmlns:viewModels="clr-namespace:QRCodeGenerator.ViewModels;assembly=QRCodeGenerator"
                x:Class="QRCodeGenerator.Tizen.Wearable.Views.PasswordPage"
                xmlns:cui ="clr-namespace:Tizen.Wearable.CircularUI.Forms;assembly=Tizen.Wearable.CircularUI.Forms"
                NavigationPage.HasNavigationBar="False">

    <cui:CirclePage.BindingContext>
        <viewModels:PasswordViewModel />
    </cui:CirclePage.BindingContext>

    <cui:CirclePage.Content>
        <cui:CircleStackLayout>
            <cui:PopupEntry Placeholder="Password"
                            BackgroundColor="Gray"
                            TextColor="Blue"
                            VerticalOptions="CenterAndExpand"
                            HorizontalOptions="CenterAndExpand"
                            Text="{Binding Password}" />
        </cui:CircleStackLayout>
    </cui:CirclePage.Content>

</cui:CirclePage>

The only thing that is changed is that ContentPage is changed to CirclePage, but problem also occured when I was testing it on ContentPage. In this case I need CirclePage to use ActionButton.

Problem i have encountered is after focusing on entry . Background over the keyboard is set to grey but entry remains in same place as before. Second screen is taken after I typed "A". Also the Background color is not working when in unfocused state (I forgot to change PlaceholderColor to blue).

popupentry1

popupentry2

popupentry3

Here are my packages for whole solution: popupentry5

I also tested the ActionButton issue but it seems to be working good now :)

jkpu commented 6 years ago

I have reproduce this issue with wearable 4.0 preview emulator. but this version of emulator binary is outdated. preview emulator binary version is tizen-4.0-unified_20180223.1 . PopupEntry efl theme was applied about 2 month ago by nativen UI engineer. So this issue due to not applying theme of PopupEntry. If you are samsung developer. you must use latest emulator binary or use latest Solis target binary. You are not samsung developer. you can only wait 4.0 officail release that will apply PopupEntry native theme.

jsobczuk commented 6 years ago

I am Samsung developer ^^ Please don't close this issue yet, we are still encoutering problems with PopupEntry even on new emulator.

Thanks for reply.

jsobczuk commented 6 years ago

I use 20180716.2 Emulator now.

<?xml version="1.0" encoding="utf-8" ?>
<cui:CirclePage xmlns="http://xamarin.com/schemas/2014/forms"
                xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                xmlns:viewModels="clr-namespace:QRCodeGenerator.ViewModels;assembly=QRCodeGenerator"
                x:Class="QRCodeGenerator.Tizen.Wearable.Views.PasswordPage"
                xmlns:cui ="clr-namespace:Tizen.Wearable.CircularUI.Forms;assembly=Tizen.Wearable.CircularUI.Forms"
                NavigationPage.HasNavigationBar="False">

    <cui:CirclePage.BindingContext>
        <viewModels:PasswordViewModel />
    </cui:CirclePage.BindingContext>

    <cui:CirclePage.Content>
        <cui:CircleStackLayout>
            <cui:PopupEntry PlaceholderColor="Blue"
                            Placeholder="Password"
                            BackgroundColor="AliceBlue"
                            TextColor="Blue"
                            VerticalOptions="CenterAndExpand"
                            HorizontalOptions="CenterAndExpand"
                            Text="{Binding Password}" />
        </cui:CircleStackLayout>
    </cui:CirclePage.Content>

    <cui:CirclePage.ActionButton>
        <cui:ActionButtonItem x:Name="ActionButton"
                              Text="Done"
                              Command="{Binding GoToPreviousPageCommand}" />
    </cui:CirclePage.ActionButton>

</cui:CirclePage>

It works good in this setup.

Still I encountered a problem:

PopupEntry is not working properly when BackgroundColor property is not set. Also the ActionButton is not working properly. There is some sort of "flickering". Sometimes it works good but in most cases I see something like on theese 2 screens:

popup1 popup2

You can see that ActionButton is still visible.

It got me into question: Why there is no option to choose if I want the keyboard screen to change the color? What if someone need Red background on PopupEntry but also need the keyboard screen to have Black background? In my opinion there should be additional attribute like KeyboardScreenBackgroundColor and when it's not set it should have default screen color (Black i think).

jkpu commented 6 years ago

I fixed PopupEntry background transparency issue at (https://github.com/Samsung/Tizen.CircularUI/pull/78) please update latest nuget via myget. And your request about KeyboardScreenBackgroundColor. we will discuss about this property .