2017-01-05 9 views
2

EditTextにはdrawableRightがあります。問題は、ドロウアブルをクリックすると、EditTextがこの奇妙なモードにあり、正確にはフォーカスされていないことです。以下は、それがどのように見えるかです:私が知っているEditTextは描画可能なクリックに焦点を合わせます

enter image description here

その理由は以下の集中集中そのとき、それがどのように見えるかではありません。

enter image description here

私は何を達成しようとしていることであるとき、描画可能なことEditTextはフォーカスを得るべきではありません。私はonTouchListenerの中でmyEditText.clearFocus()を試してみました。私は何が間違っているのか明確ではないので、何を試してみるべきか分からない。

+0

ドロアブルを押したときにはどうなりますか?これは、XMLで何らかの形で関係がなく、upponがdrawableに触れるとdrawableの動きを引き起こさない場合、あるビューが別のビューに影響を及ぼすことは意味をなさない。 –

+0

私は、押されたときにカスタムビューを表示します。私はそれが問題ではないので、質問から外しました。私はdrawableがクリックされたときに正しくビューを膨張させることができます。問題は、EditText _thinks_が集中していることです。私はそれが完全に集中していないので混乱しています。 – Intern

+0

コンピュータから使用しているデバイスのプラグを抜く、アプリケーションを完全に削除してから再接続するなど、最悪の場合は試しましたか?プロジェクトのクリーンビルドを行い、再度実行します。私はEditTextの動作を理解できないので、実際にはコードごとに操作されていなければ、これらのことを前提にしています。 –

答えて

1

あなたEditTextは、あなたの最初のシナリオでisPressed()であるかどうかを確認します。私はこの問題を少し前にして、EditTextがあなたと同じような状態にあり、isFocused()はいつもfalseでしたが、isPressed()trueでした。私がする必要があったのはonTouchListenerで、pressedをfalseに設定しました。つまり、myEditText.setPressed(false)です。

+0

これはそれでした! 'onPressed'をfalseに設定するとうまくいきました。あなたはなぜそれが起こるのか知っていますか? – Intern

1

onTouchListenerを設定しましたか?

editText.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      final int DRAWABLE_RIGHT = 2; 

      if(event.getAction() == MotionEvent.ACTION_UP) { 
       if(event.getRawX() >= (editComment.getRight() - editComment.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) { 
        // your action here 

       return true; 
       } 
      } 
      return false; 
     } 
    }); 
+0

はい、drawableがクリックされたときに私のカスタムビューがどのように表示されるかを実装しています。 – Intern

関連する問題