我的项目也使用Xamarin和MvvmCross,但我不认为这会影响答案,因为问题是所有view-layout / axml相关。
我有一个GridView,它总结了一个联系人列表。单击此网格视图时,我希望将用户带到另一个屏幕以向此列表添加更多联系人(因此有更多空间)。 订阅GridView的OnClick事件给了我一个例外,说我应该订阅项目点击事件,所以我使用围绕GridView(及其附带的空图像视图)的可点击相对布局这样做:
...
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/addContactsRelativeLayout"
android:clickable="true">
<ImageView
android:id="@+id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/ic_add" />
<Mvx.MvxGridView
android:id="@+id/addContactsGridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="ItemsSource Contacts"
local:MvxItemTemplate="@layout/contact_summary_item"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:columnWidth="55dip"
android:gravity="center" />
</RelativeLayout>
...
当GridView为空时,这可以正常工作,并显示空的ImageView。但是,当GridView中有项目时,RelativeLayout似乎不再存在,可以看到GridView上的点击突出显示GridView上的项目。这意味着用户不会被带到屏幕上来编辑他们的联系人列表。
我在SO上尝试了类似问题的几种不同配置和属性,但我认为添加空视图会导致问题。任何帮助将不胜感激。
答案 0 :(得分:0)
好的,经过更多的游戏,我找到了解决方案。
基本上它是在周围的相对布局中添加另一个相对布局,在z-index中更高,因此在'真实'内容之上。
...
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
<ImageView
android:id="@+id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/ic_add" />
<Mvx.MvxGridView
android:id="@+id/addContactsGridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="ItemsSource Contacts"
local:MvxItemTemplate="@layout/contact_summary_item"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:columnWidth="55dip"
android:gravity="center"
android:focusable="false"/>
<RelativeLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:clickable="true"
android:id="@+id/addContactsRelativeLayout"/>
...
然后只需移动所有点击侦听器即可收听底部的相对布局。