将Xamarin.Forms StackLayout转换为Android视图

时间:2016-07-05 11:21:34

标签: c# android xamarin.android cross-platform xamarin.forms

我正在尝试将Xamarin.Forms堆栈布局转换为Android原生View类,以便在IWindowManager.AddView方法中使用它。

转换代码

static class ViewToAndroidViewConverter
{
    public static Android.Views.View GetNativeView(this VisualElement view)
    {
        if (Platform.GetRenderer(view) == null)
            Platform.SetRenderer(view, Platform.CreateRenderer(view));
        var renderer = Platform.GetRenderer(view);
        renderer.Tracker.UpdateLayout();

        return renderer.ViewGroup;
    }
}

这是我试图转换的StackLayout

StackLayout testView = new StackLayout();
testView.Children.Add(new Label { Text = "Incoming call text" });
testView.Children.Add(new Label { Text = incomingNumber });
testView.BackgroundColor = Color.Green;

windowManager.AddView( testView.GetNativeView(),
            new WindowManagerLayoutParams {
                Title = "Call title sample",
                Gravity = GravityFlags.Center,
                Type = WindowManagerTypes.SystemAlert,
                Height = 500,
                Width = 1080
            });

问题是显示了此测试视图,但没有标签内容(仅限纯绿色矩形)。 有没有办法从堆栈布局创建一个具有完整内容的Android本机视图?

0 个答案:

没有答案