我使用Xamarin + MvvmCross来构建一个android应用。

我有一个视图,其中具有MvxGridView,在其ItemTemplate中,子视图具有另一个MvxGridView。

在第一个MvxGridView中有ItemClick事件,但是它不起作用。我已尝试删除第二个MvxGridView。 ItemClick起作用。

这是第一个视图。

<Mvx.MvxGridView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    local:MvxBind="ItemsSource Follows; ItemClick GoToEditCommand"
    local:MvxItemTemplate="@layout/item_view"
    android:numColumns="@integer/item_columns"
    android:stretchMode="columnWidth"
    android:horizontalSpacing="5dp"
    android:verticalSpacing="5dp"
    android:gravity="center"
    android:fastScrollEnabled="true"
    android:scrollbars="vertical"
    android:scrollbarStyle="outsideInset"
    android:smoothScrollbar="true"
    android:paddingTop="5dp"
    android:paddingRight="5dp"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:drawSelectorOnTop="true"
    android:clipChildren="false"
    android:clipToPadding="false"
    android:clickable="true"
    android:descendantFocusability="beforeDescendants" />


这是项目视图。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView android:text="Information A"/>
<TextView android:text="Information B"/>
<Mvx.MvxGridView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    local:MvxBind="ItemsSource Lines"
    local:MvxItemTemplate="@layout/item_Icon"
    android:numColumns="6" /></LinearLayout>


这是Item_Icon视图

<MvxImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
local:MvxBind="DrawableName Id, Converter=IdToImagePath;"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_margin="1dp"
android:clickable="false"
android:longClickable="false"
android:focusable="false"
android:focusableInTouchMode="false" />


我整天都在烦恼。我尝试了很多方法,例如android:descendantFocusability =“ beforeDescendants”,但是没有方法可以解决问题。

我能怎么做?

最佳答案

似乎是一个复杂的层次结构。您可以尝试在gridview中进行此操作吗?

android:descendantFocusability="blocksDescendants"


如果它在主gridview上不起作用,请尝试从那里将其删除,并将其放置到itemviews的父LinearLayout中。

10-07 16:38