MvxListVIew ItemLongClick中包含EditText的绑定

时间:2017-03-07 07:11:19

标签: c# android android-layout xamarin mvvmcross

我希望EditTextMvxListView ItemLongClick MvvmCross绑定正常工作(使用模板)。我使用的开发框架是Xamarin.Android中的C#(用EditText编写)。

我尝试过常规方法,MvxListView似乎将ItemLongClick项目中的所有焦点都放在了一起。这意味着,EditText仅适用于项目的EditText部分。重要的是要知道当我禁用android:focusable="false"ItemLongClick)的焦点时,EditText在项目的所有部分内工作(牺牲android:descendantFocusability="blocksDescendants"不起作用)。我尝试过的最后一件事是在我的项目布局的根元素(基于this answer)上设置EditText,它的作用与禁用... <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;" /> ... 焦点相同。

以下是我写的代码。

.axml中的MvxListView

<?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>

table_shipment_item_layout.axml

EditText

如您所见,我使用EditText,因此用户可以编辑每个扫描项目的数量。这有什么解决方法吗?除了MvxListView {{1}}之外,如果有的话,我也会接受另一种方法。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您正在android:descendantFocusability="blocksDescendants"使用的Mvx.MvxListView无效,您需要将其添加到行行xml的根布局中。

还有一个人认为您已在android:focusable="false"中声明Mvx.MvxListView这也无法正常工作您需要添加您的子xml内部布局,例如EditText

根据EditText中的经验ListView无法正常工作。如果您想分别从每行输入。

您可以使用TextView代替EditText,然后打开并输入Dialog EditText并输入您的输入值并设置为TextView和您的ListView DataList的。

OR

您可以使用ScrollViewLienarelayout以及EditText创建自定义Dialog,这样就无需打开并输入ChoiceBox