C# MvxListVIew项长单击绑定,其中包含EditText
我想让C# MvxListVIew项长单击绑定,其中包含EditText,c#,android,android-layout,xamarin,mvvmcross,C#,Android,Android Layout,Xamarin,Mvvmcross,我想让MvxListView中的EditText绑定在ItemLongClick中正常工作(使用模板)。我使用的开发框架是Xamarin.Android中的MvvmCross(用C#编写) 我尝试了正常的方法,EditText似乎占据了MvxListView项中的所有焦点。这意味着,ItemLongClick仅在该项的EditText部分中起作用。重要的是要知道,当我禁用EditText(android:focusable=“false”)的聚焦功能时,ItemLongClick会在项目的所有部
MvxListView
中的EditText
绑定在ItemLongClick
中正常工作(使用模板)。我使用的开发框架是Xamarin.Android中的MvvmCross
(用C#
编写)
我尝试了正常的方法,EditText
似乎占据了MvxListView
项中的所有焦点。这意味着,ItemLongClick
仅在该项的EditText
部分中起作用。重要的是要知道,当我禁用EditText
(android:focusable=“false”
)的聚焦功能时,ItemLongClick
会在项目的所有部分工作(牺牲EditText
不工作)。我最后尝试的一件事是在我的项目布局的根元素(基于)上设置android:degenantfocusability=“blocksDescendants”
,其作用与禁用EditText
focusability相同
下面是我写的代码
.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;" />
...
<?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>
。。。
...
表\u发货\u项目\u布局。axml
...
<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;" />
...
<?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
之外,我还愿意使用另一种方法(如果有的话)。提前感谢。您正在使用的android:DegenantFocusability=“BlocksDescents”位于您的Mvx中。MvxListView
不起作用,您需要将其添加到行xml的根布局中
还有一个想法是,您在Mvx.MvxListView
中声明了android:focusable=“false”
,这也不起作用,您需要像您的案例中那样添加子xml内部布局EditText
根据经验,ListView
中的EditText
工作不正常。如果您想分别从每一行获取输入
您可以使用TextView
代替EditText
,使用EditText
打开并输入对话框
,获取输入值并设置到TextView
和数据列表中
或
您可以使用
滚动视图
和Lienarelayout
和编辑文本
创建自定义列表视图
,这样就不需要打开和输入对话框
是的,我已经尝试了所有这些genderantfocusability
,但都没有效果。他们在那里,因为我没有删除后,尝试了很多次。根据您的经验,您是否可以建议其他方法来解决此问题?谢谢您的建议。是否有任何链接或教程可用于将输入对话框
与编辑文本
一起使用?通过使用ScrollView
,它还会使用local:MvxItemTemplate
和ItemsSource
绑定吗?如果是这样,项目模板是否也可以作为父项的焦点?您需要在单击EditText时创建一个对话框。请按此链接查看此对话框