1

我想在 android.support.design 中使用很棒的设计选项,但是有一个问题。

当我在 TextInputLayout 中为我的 EditText 的 FocusChanged( android 中的setOnFocusChangedListener)设置一个操作时,TextInputLayout 无法正常工作,并且浮动文本始终保持在带有强调色的 edittext 顶部。(TextInputLayout 不会自行更新)

有没有办法解决这个问题?!

我在 xamarin 中制作我的应用程序,但如果你给我 java 代码,没问题。

4

3 回答 3

2

这是真的,当您为 EditText 设置自定义 onFocusChangedListener 时,您会覆盖 onFocusChangedListener,但您仍然可以使用旧的 onFocusChangedListener。为此,您需要在覆盖之前获取它。

final View.OnFocusChangeListener oldNameFocusListener = textInputLayout.getEditText().getOnFocusChangeListener();
    textInputLayout.getEditText().setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            oldNameFocusListener.onFocusChange(v, hasFocus);
        }
    });

这个问题可以在旧的设计库中找到,在新版本(v23.0.0)中,这个问题得到了修复。

于 2015-09-01T11:39:05.847 回答
0

我找到了答案。意外地,我在布局中点击了一个单选按钮,我看到 TextInputLayout 更新并且浮动标签发生了变化,我发现如果布局刷新了 TextInputLayout 更新。所以我只是将它添加到我的 FocusChanged (onFocusChangedListener in android) 方法中

((TextView)sender).Text = ((TextView)sender).Text;

于 2015-08-05T10:14:42.977 回答
0

当您onFocusChangedListener为您设置自定义EditText覆盖onFocusChangedListener时,由TextInputLayout. 所以,没有办法使用onFocusChangedListenerwith TextInputLayout

于 2015-08-12T08:20:21.917 回答