ItemsSource中带有复选框的MvxListViews是不可选的

时间:2014-04-15 00:21:02

标签: mvvmcross

我有一个MvxListView,我正在显示一些食谱卡。当用户点击一张卡片时,他们应该被带到一个细节屏幕。我遇到的问题是当单元格中有CheckBox(绑定或未绑定)时,整个单元格会忽略click事件。

我的MvxListView创建于:

    <MvxListView
    android:layout_margin="10dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    local:MvxBind="ItemsSource Recipes; ItemClick ShowRecipeDetailCommand"
    local:MvxItemTemplate="@layout/use_recipe_list_item"
    android:divider="@android:color/transparent"
    android:dividerHeight="10dp" />

List项目使用:

创建
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:local="http://schemas.android.com/apk/res-auto"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:background="@color/use_detail_recipe_background"
              android:padding="10dp">
        <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Title"
                android:id="@+id/tvTitle"
                android:textSize="24sp"
                local:MvxBind="Text Title"
                android:layout_weight="1"
                android:layout_toLeftOf="@+id/cbFavorite"
                android:textColor="@color/use_detail_recipe_title_text" />
    <!--    <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cbFavorite"
                android:layout_alignParentTop="true"
                android:layout_alignParentRight="true"
                android:checked="false"
                android:layout_weight="0" />-->
        <View
                android:id="@+id/vDivider1"
                android:layout_width="fill_parent"
                android:layout_height="2dp"
                android:background="#000000"
                android:layout_below="@+id/tvTitle" />
        <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Content"
                android:id="@+id/tvContent"
                android:singleLine="false"
                android:layout_below="@+id/vDivider1"
                local:MvxBind="Text Content"
                android:textColor="@color/use_detail_recipe_content_text"
                android:maxLines="4"/>
    </RelativeLayout>

如果未注释该复选框,则此方法有效。我该如何解决这个问题?是否可以在项目的基础RelativeLayout上点击添加命令?

1 个答案:

答案 0 :(得分:3)

感谢Stuart提示。这确实不是MvvmCross问题,而是一般的Android问题。

解决方案是将以下内容添加到每个可点击项目中:

android:focusable="false"
android:focusableInTouchMode="false"

这条评论让我走上正轨https://stackoverflow.com/a/15859831/83301