xamarin.在Monodroid中使用@android:id/empty获取ViewStub返回null



在Monodroid中,我有一个ListActivity类,它包含以下axml段:

    <ListView android:id="@android:id/list"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"/>
    <ViewStub
            android:id="@android:id/empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout="@layout/empty" />

我正在尝试使用以下访问ViewStub

FindViewById(Android.Resource.Id.Empty);

但是,它总是返回null。如果我使用访问列表

FindViewById(Android.Resource.Id.List);

它可以工作,或者如果我将ViewStub命名为@android:id/empty之外的其他名称,它也可以工作。当我的列表为空时,ViewStub确实有效。

感谢

以下是我能想到的一些可能是问题所在的事情。

第一个问题可能是您在其他地方有另一个定义id为"空"的UI页面。MonoDroid将所有页面中的所有ID放在同一个资源文件中,因此显然不能两次使用相同的名称。试着把空2放进去看看是否有效。

下一个问题可能是你应该有android:id=@id+/empty"。+命令告诉MonoDroid为Resource文件中的控件生成一个id。

最后,使用除"空"之外的其他词。Empty可能是Android/MonoDroid的保留词,所以我会避免它。

最新更新