问题描述
我正在尝试为Galaxy Watch开发一个简单的应用程序,该应用程序包括一个使用可旋转表圈进行递增和递减计数的计数器,但是我很难让它对旋转事件做出响应。我创建了一个实现BezelInteractionPage
的页面,并创建了一个简单的类,其中包含实现IRotaryEventReceiver
并在检测到旋转事件时更新Label
的计数器,并设置了页面的{{1} }到后一个类的实例,我认为它反映了Tizen.CircularUI GitHub repo中的一个示例中的操作。这是我的代码:
RotaryFocusObject
除主类外,这是项目中的唯一文件,是我从“空白应用程序(Xamarin.Forms)”模板创建的。标签会显示出来,但是当我旋转挡板时它不会更新。
我尝试过的另一种方法是使用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();
}
}
,但是我无法弄清楚如何自定义其使用的文本的大小和格式,或者使它能够响应边框旋转而不必先被点击。我也不太喜欢对焦时它背后的小阴影,所以我宁愿不要使用它。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)