【问题标题】:How to convert android native AbsoluteLayout to Xamarin.Forms.AbsoluteLayout如何将 android 本机 AbsoluteLayout 转换为 Xamarin.Forms.AbsoluteLayout
【发布时间】:2017-06-28 19:27:07
【问题描述】:

我有一个视频通话 sdk,它在初始化时采用 Xamarin.Forms.AbsoluteLayout 实例,以便它可以将视频放置在该容器中。

我有适用于 android 和 iOS 的单独 UI。 在 android 中,我有一个布局文件 (.axml),其中有一个 AbsoluteLayout。 我正在以编程方式访问 AbsoluteLayout。 但是我在下面代码的第二行遇到编译错误,

[error: cannot convert type Android.View.View to Xamarin.Forms.AbsoluteLayout]

_view = activity.LayoutInflater.Inflate(Resource.Layout.Video, this, false);
var container = (Xamarin.Forms.AbsoluteLayout)_view.FindViewById(Resource.Id.container);

虽然如果我用(Android.Widget.AbsoluteLayout) 替换类型转换不会发生编译错误。

【问题讨论】:

  • 我觉得不可能,你为什么要这么做?
  • 我使用的 sdk 是为使用基于 xaml 的页面而构建的。但是我们为 iOS 和 Android 提供了不同的 UI。如果我们有一个 xaml 页面,则可以轻松地将 Xamarin.Forms.AbsoluteLayout 作为容器发送到 sdk。但在我们的例子中,我们有一个 Android.Widget.AbsoluteLayout。 :(
  • 您是否尝试将 PCL 中的 Xamarin.Forms.AbsoluteLayout 渲染为您在 Android 平台中的自定义布局 (Android.Widget.AbsoluteLayout)?
  • 不,我们没有任何 xaml 页面,因此 PCL 中没有 Xamarin.Forms.AbsoluteLayout。代码 sn-p 在 VideoCallPageRenderer : PageRenderer 中。它需要一个布局文件,对其进行膨胀并尝试使用view.FindViewById(Resource.Id.container) 在布局文件中获取 AbsoluteLayout。 FindViewById 正在返回 Android.Widget.AbsoluteLayout。需要转换为(Xamarin.Forms.AbsoluteLayout。因为视频通话sdk以Xamarin.Forms.AbsoluteLayout为参数。

标签: android xamarin.android absolutelayout


【解决方案1】:

android的AbsoluteLayoutAndroid.Widget包中,所以改一下:

var container = (Android.Widget.AbsoluteLayout)_view.FindViewById(Resource.Id.container);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多