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(AndroidではonFocusChangedListener)メソッドに追加するだけです

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

于 2015-08-05T10:14:42.977 に答える
0

カスタムonFocusChangedListenerを設定すると、 によって設定されたEditTextオーバーライドonFocusChangedListenerが設定されTextInputLayoutます。onFocusChangedListenerしたがって、 と併用する方法はありませんTextInputLayout

于 2015-08-12T08:20:21.917 に答える