android - Android 中的 View.Frame 等价物

标签 android ios xamarin

我已经在 iOS 上工作了一段时间,并在 View 中显示 WebView 的地方实现了以下代码。

UIView contentView = new UIView();
UIWebView webView = new UIWebView(contentView.Frame);

我想知道如何在Android 中编写上述代码。我写了以下但出现错误。我是 Android 新手。

View contentView = new View();
WebView webView = new WebView(contentView.LayoutParamaters);

enter image description here

最佳答案

我认为这是对 iOS 和 Android 之间的差异以及 Xamarin 如何支持跨平台 C# 的误解。两个平台之间的 API 非常不同,而 UIView 在概念上类似于 View 实际上它们映射到不同的 API。 UIView是 iOS 特定的 api 和 View是特定于 Android 的 API,它们各自是相应 native 控件之上的薄层,彼此无关。

我建议通读一些 Xamarin.Android 教程以了解 Android 和 iOS 之间的差异。

关于错误:

View 的构造函数需要一个 Context提供给构造函数。您可以通过两种方式执行此操作,提供拥有的 Activity 或全局应用程序上下文:

// In the scope of an Activity.
View contentView = new View(this); // "this" is the activity reference.

// In another scope...
View contentView = new View(Android.App.Application.Context);

对于第二个错误,WebView 没有采用该参数的构造函数。

通过不提供任何内容来修复它:

WebView webView = new WebView();

关于android - Android 中的 View.Frame 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33768840/

相关文章:

android - 如何在模拟器上安装电子邮件客户端

ios - 检查 textField.text isEqualToString

ios - 判断 UIImageView 是否已经旋转

c# - Xamarin 权限插件 RequestPermissionsAsync 未返回

c# - Xamarin Firebase 发送电子邮件验证

android - Cordova SQLite UTF8 在插入时抛出错误

Android-Textview 在拖动操作时消失

android - 获取屏幕截图时出现意外错误 - java.lang.nullpointerexception

ios - 核心数据多线程存储关系

ios8 - NSInputStream 从不在 iOS9(经典蓝牙)上使用 HasBytesAvailable