首页
学习
活动
专区
圈层
工具
发布

Tizen交互
EN

Stack Overflow用户
提问于 2020-10-16 16:35:37
回答 1查看 154关注 0票数 0

我正试图为Galaxy开发一个简单的应用程序,其中包括一个计数器,它使用可旋转的边框进行增量和递减,但我很难让它对旋转事件做出响应。我创建了一个实现BezelInteractionPage的页面和一个简单的类,其中包含实现IRotaryEventReceiver的计数器,并在检测到旋转事件时更新Label,并将页面的RotaryFocusObject设置为后一个类的实例,我认为它反映了在Tizen.CircularUI GitHub回购中的一个示例中所做的工作。这是我的密码:

代码语言:javascript
复制
public class MainPage : BezelInteractionPage
{
    public MainPage()
    {
        Label text = new Label
        {
            Text = "0"
        };
        var proxy = new RotaryFocusProxy(text);

        Content = new StackLayout
        {
            HorizontalOptions = LayoutOptions.Center,
            VerticalOptions = LayoutOptions.Center,
            Children =
            {
                text
            }
        };

        RotaryFocusObject = proxy;
    }
}

class RotaryFocusProxy : IRotaryEventReceiver
{
    private int x;
    private Label label;

    public RotaryFocusProxy(Label l)
    {
        x = 0;
        label = l;
    }

    public void Rotate(RotaryEventArgs args)
    {
        if (args.IsClockwise)
            x++;
        else
            x--;
        label.Text = x.ToString();
    }
}

除了主类之外,这是项目中唯一的文件,我是从“空白应用程序(Xamarin.Forms)”模板创建的。标签会出现,但当我旋转边框时它不会更新。

我尝试过的另一种方法是使用CircleStepper,但是我不知道如何定制它使用的文本的大小和格式,或者让它响应bezel旋转而不必先点击。我也不喜欢它背后的阴影,当它在焦点,所以我宁愿不使用它,如果我没有必要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 11:13:26

我已经创建了空的可穿戴项目并添加了您的代码。在我的例子中,它发挥了预期的作用。

请尝试从模板Tizen可穿戴应用程序创建空项目并添加您的代码片段。您可能需要在该空项目中更新CircularUI nuget。

更新:

旋转事件之所以没有交付,是因为“空白应用程序(Xamarin.Forms)”模板没有把CircularUI放在盒子里。除了添加CircularUI nuget之外,还需要在Main方法中添加初始化:

代码语言:javascript
复制
static void Main(string[] args)
{
    var app = new Program();
    Forms.Init(app);
    
    //This is the missing initialization code
    global::Tizen.Wearable.CircularUI.Forms.FormsCircularUI.Init();

    app.Run(args);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64393133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档