【发布时间】: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