由於android:editable="false"
是deprecated,你應該設置android:inputType="none"
對EditText
禁止輸入。如果您想要將EditText
的inputType
與MvvmCross綁定,您可以創建一個Value Converter,它從您的ViewModel獲取輸入值,並返回Android.Text.InputTypes
類型的答案。
實現示例:
添加類到你的Android項目,在它的下面:
public class EditTextEnabledValueConverter : MvxValueConverter<bool, InputTypes>
{
protected override InputTypes Convert(bool value, Type targetType, object parameter, CultureInfo culture)
{
if (value)
return InputTypes.ClassNumber | InputTypes.NumberFlagDecimal | InputTypes.NumberFlagSigned;
return InputTypes.Null;
}
}
,並在您的佈局文件:
<EditText
style="@style/InputNumbersEditText"
android:layout_weight="1"
android:layout_width="0dp"
android:focusable="true"
android:layout_height="wrap_content"
local:MvxBind="Text Age; InputType EditTextEnabled(MyProperty)" />
其中myProperty的是您的ViewModel上的可綁定布爾值。您可以使用任何類型作爲源類型,它不一定是布爾值。開心轉換!
可否請您舉例說明一個代碼示例? – hotspring
當然,我會在一秒內編輯我的帖子。 –
它工作得很好。但鍵盤不是數字或小數。它是默認的字母鍵盤顯示。 – hotspring