【问题标题】:Android Widget using Xamarin Forms?使用 Xamarin 表单的 Android 小部件?
【发布时间】:2016-08-02 12:16:42
【问题描述】:

我已经在 Xamarin Forms 中创建了一个可在 Android 和 iOS 中运行的应用。

现在,我想创建一个 Android Widget。

我可以使用现有的 Xamarin 表单页面并从中创建一个 Android 小部件吗?

如果有,是否有相同的样本。

我找不到太多帮助。甚至在 Xamarin Forms 论坛上。

【问题讨论】:

  • 我不确定它是否有效,但如果您使用 CustomerReneder 怎么样?所以在这种情况下,您可以使用 PageRenderer,然后您可以使用“OnElementChanged”或类似的东西来捕获它...

标签: xamarin.android android-widget xamarin.forms


【解决方案1】:

当我收到这样的推送通知消息时,我正在页面顶部创建一条祝酒消息,因此您可以创建这样的小部件(或我想的页面)。希望对您有所帮助。

var pw = new Android.Widget.PopupWindow(Xamarin.Forms.Forms.Context); //create a window
var layout = new Android.Widget.RelativeLayout(Xamarin.Forms.Forms.Context);
pw.ContentView = layout; //create your layout holder
pw.Width = 100; //set window sizes
pw.Height = 100;
pw.WindowLayoutType = WindowManagerTypes.Toast; //window type (there are some other types too, just investigate :)
var tv = new Android.Widget.TextView(Xamarin.Forms.Forms.Context); //create a text and add to your layout holder
tv.Text = "Hello";
layout.AddView(tv);
pw.ShowAtLocation(layout, GravityFlags.Top, 0, 0); //show your window

您可以通过 pw.Dissmiss() 关闭窗口,但我使用的是计时器,因为它是吐司

var timer = new System.Timers.Timer();
            timer.Interval = 5000; //5 seconds
            timer.Elapsed += (sender, e) =>
            {
                timer.Stop();
                Device.BeginInvokeOnMainThread(() =>
                {
                    pw.Dismiss();
                });
            };
            timer.Start();

我认为你也可以扩展预定义的 xaml,但你必须用谷歌搜索一下 :)

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多