1

我的应用程序有几个EditTextsTextInputLayout围绕着它们。这在大多数情况下都可以正常工作,但是当我将处理程序附加到 的 FocusChange 事件时EditText,提示无法设置动画。

我在 android 论坛上发现了这个问题,但他使用了 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();
}
4

1 回答 1

0

从这篇文章中,我找到了解决问题的方法。如帖子中所述,这是一种解决方法,但我认为这应该在新的设计库版本 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());
            }
        }
    });
于 2015-08-01T19:05:27.337 回答