Xamarin 表单布局初始化问题
Xamarin forms layout initialisation issue
我的代码出现以下错误
LinearLayout selectMain = FindViewById<GridLayout>(Resource.Id.select);
错误 CS0029 无法将类型 'Android.Widget.GridLayout' 隐式转换为 'Android.Widget.LinearLayout'
GridLayout inputMain = FindViewById<LinearLayout>(Resource.Id.input);
错误 CS0029 无法将类型 'Android.Widget.LinearLayout' 隐式转换为 'Android.Widget.GridLayout'
这让我感到困惑,因为它们都是正确的布局类型,如果我在我的代码中交换布局类型,它构建得很好但是当 运行 它抛出几乎相同的豁免。
protected override void OnCreate(Bundle savedInstanceState) //run on startup.
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
SetContentView(Resource.Layout.activity_main);
LinearLayout selectMain = FindViewById<GridLayout>(Resource.Id.select);
GridLayout inputMain = FindViewById<LinearLayout>(Resource.Id.input);
}
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:rowCount="9"
android:id="@+id/input"
tools:gridSpec="1|8|#0093eeff|K:#ee8700ff:16,l:72,l:16,r|S:#83ee00ff:16,0,l:16,0,r">
</GridLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/select">
</LinearLayout>
你的类型互换了。
LinearLayout selectMain = FindViewById<GridLayout>(Resource.Id.select);
GridLayout inputMain = FindViewById<LinearLayout>(Resource.Id.input);
应该是:
//FindViewById<LinearLayout>
LinearLayout selectMain = FindViewById<LinearLayout>(Resource.Id.select);
//FindViewById<GridLayout >
GridLayout inputMain = FindViewById<GridLayout>(Resource.Id.input);
我的代码出现以下错误
LinearLayout selectMain = FindViewById<GridLayout>(Resource.Id.select);
错误 CS0029 无法将类型 'Android.Widget.GridLayout' 隐式转换为 'Android.Widget.LinearLayout'
GridLayout inputMain = FindViewById<LinearLayout>(Resource.Id.input);
错误 CS0029 无法将类型 'Android.Widget.LinearLayout' 隐式转换为 'Android.Widget.GridLayout'
这让我感到困惑,因为它们都是正确的布局类型,如果我在我的代码中交换布局类型,它构建得很好但是当 运行 它抛出几乎相同的豁免。
protected override void OnCreate(Bundle savedInstanceState) //run on startup.
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
SetContentView(Resource.Layout.activity_main);
LinearLayout selectMain = FindViewById<GridLayout>(Resource.Id.select);
GridLayout inputMain = FindViewById<LinearLayout>(Resource.Id.input);
}
<GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:rowCount="9"
android:id="@+id/input"
tools:gridSpec="1|8|#0093eeff|K:#ee8700ff:16,l:72,l:16,r|S:#83ee00ff:16,0,l:16,0,r">
</GridLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/select">
</LinearLayout>
你的类型互换了。
LinearLayout selectMain = FindViewById<GridLayout>(Resource.Id.select);
GridLayout inputMain = FindViewById<LinearLayout>(Resource.Id.input);
应该是:
//FindViewById<LinearLayout>
LinearLayout selectMain = FindViewById<LinearLayout>(Resource.Id.select);
//FindViewById<GridLayout >
GridLayout inputMain = FindViewById<GridLayout>(Resource.Id.input);