2017-03-07 1 views
0

Je veux avoir EditText dans le MvxListView qui a ItemLongClick de liaison fonctionnant normalement dedans (en utilisant le modèle). Le cadre de développement que j'ai utilisé est MvvmCross dans Xamarin.Android (écrit en C#).MvxListVIew Liaison ItemLongClick avec EditText dans

J'ai essayé l'approche normale, et le EditText semble prendre toutes les focalisables dans l'élément MvxListView. Cela signifie que le ItemLongClick ne fonctionne que dans la partie EditText de l'élément. Il est important de savoir quand je désactive le focusable de EditText (android:focusable="false"), le ItemLongClick fonctionne dans toutes les parties de l'article (en sacrifice de EditText ne fonctionne pas). La dernière chose que j'ai essayée est android:descendantFocusability="blocksDescendants" sur mon élément racine (basé sur this answer) de ma mise en page d'article et il agit de la même manière que la désactivation du focusable EditText.

Voici le code que j'ai écrit.

MvxListView dans .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;" /> 
... 

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="." 
     android:layout_gravity="right|center_vertical" 
     local:MvxBind="Text Quantity;" /> 
</LinearLayout> 

Comme vous pouvez le voir, je me sers du EditText, afin que les utilisateurs peuvent modifier la quantité de chaque article scanné. Y at-il une solution de contournement pour cela? Je suis également ouvert à une autre méthode en dehors de EditText dans MvxListView s'il y en a. Merci d'avance.

Répondre

0

Vous utilisez android:descendantFocusability="blocksDescendants" est dans votre Mvx.MvxListView qui ne fonctionne pas, vous devez l'ajouter à votre root. Mise en page de rang rangée xml.

un de plus pense que vous avez déclaré android:focusable="false" dans Mvx.MvxListView ce qui ne fonctionne pas non plus, vous devez ajouter dans votre enfant des mises en page internes de xml comme dans votre cas EditText.

Et selon l'expérience EditText en ListView ne fonctionne pas correctement si vous souhaitez prendre des entrées de chaque ligne séparément.

Vous pouvez prendre TextView en place de EditText et ouvert et entrée Dialog avec EditText et obtenir votre valeur d'entrée et mettre dans votre TextView et votre DataList.

OU

vous pouvez créer sur mesure ListView en utilisant ScrollView et Lienarelayout et EditText, de cette manière ne pas besoin d'ouvrir et entrée Dialog.

+0

Oui, j'ai essayé tous ces 'descendantFocusability' et aucun de ces travaux. Ils sont là parce que je ne l'ai pas enlevé après avoir essayé plusieurs fois. Y a-t-il une autre méthode que vous pourriez suggérer pour surmonter ce problème en fonction de votre expérience? –

+0

voir ma réponse mise à jour. –

+0

Nous vous remercions de votre suggestion. Y at-il un lien ou un tutoriel pour utiliser l'entrée 'Dialog' avec' EditText'? En utilisant 'ScrollView', utilisera-t-il toujours la liaison' local: MvxItemTemplate' et 'ItemsSource'?Si oui, est-ce que le modèle de l'article devrait également être orientable du parent? –