在空视图上方的Android可点击布局

时间:2014-09-09 09:53:18

标签: android-layout layout xamarin android-relativelayout

我的项目也使用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上尝试了类似问题的几种不同配置和属性,但我认为添加空视图会导致问题。任何帮助将不胜感激。

1 个答案:

答案 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"/>
...

然后只需移动所有点击侦听器即可收听底部的相对布局。