【问题标题】:Android clickable layouts above empty views空视图上方的 Android 可点击布局
【发布时间】:2014-11-02 16:43:44
【问题描述】:

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

【问题讨论】:

    标签: android-layout layout xamarin android-relativelayout


    【解决方案1】:

    好的,在玩了很多之后,我找到了解决方案。

    本质上它是在周围的相对布局中添加另一个相对布局,在 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"/>
    ...
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多