【发布时间】:2017-03-07 07:11:18
【问题描述】:
我想在MvxListView 中有EditText,它的ItemLongClick 绑定在其中正常工作(使用模板)。我使用的开发框架是 Xamarin.Android 中的MvvmCross(写在C#)。
我已经尝试了正常的方法,EditText 似乎占据了MvxListView 项目中的所有焦点。这意味着,ItemLongClick 仅适用于项目的 EditText 部分。重要的是要知道当我禁用 EditText (android:focusable="false") 的可聚焦时,ItemLongClick 在项目的所有部分都有效(牺牲了 EditText 不工作)。我尝试的最后一件事是在我的项目布局的根元素(基于this answer)上设置android:descendantFocusability="blocksDescendants",它的作用与禁用EditText 焦点相同。
下面是我写的代码。
.axml 中的 MvxListView
...
<Mvx.MvxListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
local:MvxItemTemplate="@layout/table_shipment_item_layout"
android:divider="#BCBCBC"
android:dividerHeight="1dp"
android:descendantFocusability="afterDescendants"
android:focusable="false"
local:MvxBind="ItemsSource ScannedItems; ItemLongClick RemoveItemCommand;" />
...
table_shipment_item_layout.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/custom_clickable_item">
...
<EditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="16.0dp"
android:text="5"
android:padding="8.0dp"
android:maxLines="1"
android:singleLine="true"
android:textColor="#000000"
android:textColorHint="#D3D3D3"
android:background="@drawable/custom_textbox"
android:inputType="number|numberDecimal"
android:digits="0123456789."
android:layout_gravity="right|center_vertical"
local:MvxBind="Text Quantity;" />
</LinearLayout>
如您所见,我使用的是EditText,因此用户可以编辑每个扫描项目的数量。有什么解决方法吗?除了MvxListView 中的EditText 之外,我也愿意接受另一种方法(如果有的话)。提前致谢。
【问题讨论】:
标签: c# android android-layout xamarin mvvmcross