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);