我有一个在C#/ Xamarin中旋转webview的类。
这是代码:
public class VerticalWebView : WebView
{
bool topDown = true;
public VerticalWebView(Context context) : base(context)
{
}
public VerticalWebView(Context context, IAttributeSet attrs) : base(context, attrs)
{
}
public VerticalWebView(Context context, IAttributeSet attrs, int defStyleAttr) : base(context, attrs, defStyleAttr)
{
}
public VerticalWebView(Context context, IAttributeSet attrs, int defStyleAttr, int defStyleRes) : base(context, attrs, defStyleAttr, defStyleRes)
{
}
public override void Draw(Canvas canvas)
{
if (topDown)
{
canvas.Translate(Height, 0);
canvas.Rotate(90);
}
else
{
canvas.Translate(0, Width);
canvas.Rotate(-90);
}
canvas.ClipRect(0, 0, Width, Height, Region.Op.Replace);
base.Draw(canvas);
}
}
然后我查看了我的清单文件以确定包名称,以便打包限定XML中的项目。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="MyCwiCardApp.MyCwiCardApp" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:label="MyCwiCardApp">
<activity android:name=".CwiLogInActivity" />
<activity android:name=".CardDisplayActivity" />
</application>
</manifest>
你可以在这里看到名字是:MyCwiCardApp.MyCwiCardApp
这是XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<MyCwiCardApp.MyCwiCardApp.VerticalWebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</MyCwiCardApp.MyCwiCardApp.VerticalWebView>
</LinearLayout>
现在每当我启动该程序时,它都会因通货膨胀异常而崩溃,说它无法扩大我的布局。
对此问题的大多数响应都集中在确保构造函数存在于重载类中,或者确保名称在XML中是包限定的。如你所见,我显然正在做这件事。我已尝试使用com进行预处理,并且只使用一个CwiMyCardApp,但都没有解决问题。