Привязка Android EditText нарушается после обновления MvvmCross с 4.2.3 до 4.4.0 с включенным компоновщиком
Мое приложение MvvmCross для Android, которое работало до сих пор, не работает из-за обновления MvvmCross с 4.2.3 до 4.4.0
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
local:MvxBind="Text Login" />
public string Login
{
get { return _login; }
set { SetProperty(ref _login, value); }
}
LinkerPleaseInclude, если, конечно, есть:
public void Include(EditText text)
{
text.Enabled = !text.Enabled;
text.TextChanged += (sender, args) => text.Text = "" + text.Text;
text.Hint = "" + text.Hint;
text.Click += (s, e) => text.Visibility = text.Visibility - 1;
}
public void Include(TextView text)
{
text.TextChanged += (sender, args) => text.Text = "" + text.Text;
text.Hint = "" + text.Hint;
text.Click += (s, e) => text.Text = text.Text + "";
}
Линкер "SDK Only" включен. Для отключенного компоновщика он работает нормально. Другие привязки также хорошо работают (нажатия кнопок, видимость и т. Д.).
Как сказать компоновщику справиться с этим правильно? Что здесь может быть не так?
1 ответ
Решение
Цель связывания для EditText
а также TextView
использует AfterTextChanged
событие, которое, вероятно, связано. Добавьте это в ваши методы Include вместо TextChanged
и это должно работать:
public void Include(TextView text)
{
text.AfterTextChanged += (sender, args) => text.Text = "" + text.Text;
text.Hint = "" + text.Hint;
text.Click += (s, e) => text.Text = text.Text + "";
}
Я не думаю, что вам нужен отдельный метод для EditText
как EditText
наследуется от TextView
,