我的应用有几个EditText
个,TextInputLayout
缠绕着它们。这在大多数情况下都可以正常工作,但是当我将处理程序附加到EditText
的FocusChange事件时,提示无法设置动画。
我在Android论坛上发现了this问题,但他使用了OnFocusChangeListener。对于事件来说,代理呼叫不是必需的,对吗?
关于这个问题的任何想法?这是Xamarin android设计支持NuGet包中的错误吗?
提前致谢
布局代码:
<android.support.design.widget.TextInputLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content">
<EditText
android:id="@+id/txtProductCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="textCapCharacters|textNoSuggestions"
android:hint="Artikelcode" />
</android.support.design.widget.TextInputLayout>
片段代码:
public override void OnStart()
{
base.OnStart();
txtProductCode.FocusChange += txtProductCode_FocusChange;
// ...
}
void txtProductCode_FocusChange(object sender, View.FocusChangeEventArgs e)
{
if (!e.HasFocus)
txtDescription.Text = GetProductDescription();
}
答案 0 :(得分:0)
从这篇文章this我找到了解决问题的方法。 正如帖子中所述,它是一种解决方法,但我认为这应该适用于新的设计库版本22.2.1,但对我来说问题仍然存在。
以下是基于上述帖子的代码:
final View.OnFocusChangeListener userNameEtFocusListener = userNameEt.getOnFocusChangeListener();
userNameEt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
userNameEtFocusListener.onFocusChange(v, hasFocus);
if (!hasFocus){
userInfoValidator.checkUserNameAvailable(userNameEt.getText().toString());
}
}
});