我使用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 View
<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”,但没有方法可以解决问题。
我该怎么办?
答案 0 :(得分:2)
这似乎是一个复杂的层次结构。你能尝试在gridview中做到这一点吗?
android:descendantFocusability="blocksDescendants"
如果它在主gridview上不起作用,请尝试将其从那里删除并将其放到itemviews父LinearLayout。