-1

私はこのようなレイアウトを持っています:

親:RelativeLayoutonTouchListener

子供:EditTextウィッチマッチRelativeLayout

したがって、 は をEditText満たしますRelativeLayout。に入力を挿入/許可したくありませんEditText。私の目的はonTouchListener、レイアウトの を起動することです。しかし、それは発火しません。次のさまざまなオプションを試しましたEditText

  1. setEditable(false)そしてsetFocusable(false) -> OK、入力はありませんが、いいえもありませんonTouch()

  2. setOnTouchListener(new OnTouchListener){return false}); -> 私が理解している限り、これはオプション 1 と組み合わせて機能するはずですがTouchEventRelativeLayout.

TextViews問題なく動作しますが、onTouchoderを使用していないためだと思いますonClick。EditViews (または touchEvents をインターセプトするビュー) が touchEvent をインターセプトしないようにするにはどうすればよいですか?

RelativeLayoutこのすべての理由:ユーザーがタッチしたときに移動したい。親と一致する子を入れない限り、これはうまく機能します。

多分誰かが私を助けることができます。

4

2 に答える 2

1

EditText の onTouchEvent メソッドをオーバーライドし、false を返す必要があります。それは私のために働いた!

于 2015-08-26T09:25:15.447 に答える
-1

いくつかのコードを見ないと、良い例を挙げるのは難しいです。あなたができること:

     yourEditText.setEnabled(false);

必要に応じて有効にします(setEnabled(true);)

または OnTouchListener をオーバーライドします。

     yourEditText.setOnTouchListener(new OnTouchListener(){

                 @override
                 public boolean onTouch(){

                 }
       });

onTouch() 以外には何も書かないでください。しかし、これはあなたがそれを必要としても、決して何も起こらないことを意味します.

于 2013-01-18T10:34:48.270 に答える