0

は、私がリターンを設定1.If TOP_LEFTから、私は正常に動作しonTouch()にfalseを返すために持っている理由を理解し、私はいけない、トランジション/アニメーション(onTouchListener)だからここ

をBOTTOM_RIGHTし、簡単な移行のコードですtrue、ワンタッチで0から3までカウンタを設定するか、単にカウンタに2または3を加算し、ほとんどの時間は現在の位置にとどまります。

2.返り値falseを設定すると、プログラムは正常に動作し、書き込まれたもの、つまりカウンタ++を実行します。

public class MainActivity extends AppCompatActivity { 
    Button b; 
    TextView tv; 

    public static int counter_button=0,counter=0; 
    RelativeLayout.LayoutParams old_rules; 
    RelativeLayout rl; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     b= (Button) findViewById(R.id.b1); 
     tv= (TextView) findViewById(R.id.tv1); 
     rl= (RelativeLayout) findViewById(R.id.rl); 
     old_rules= (RelativeLayout.LayoutParams) b.getLayoutParams(); 
     rl.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       my_changes_touch(); 
       return false; 
      } 
     }); 
    } 

    public void my_changes_touch(){ 

     RelativeLayout.LayoutParams rules= new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); 
     if(counter%2==0) { 
      counter++; 
      tv.setText(" "+counter); 
      rules.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
      rules.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
      b.setLayoutParams(rules); 
      rules.height=400; 
      rules.width=400; 
      b.setLayoutParams(rules); 
      getContentTransitionManager().beginDelayedTransition(rl); 
     } else { 
      counter++; 
      tv.setText(" "+counter); 
      b.setLayoutParams(old_rules); 
      getContentTransitionManager().beginDelayedTransition(rl); 
     }  
    } 
} 

答えて

2

戻り値は、ビューが消費するイベントを決定します。

他のイベントにも興味があるということです。

falseを返すと、タッチイベントはビュー階層の次のビューに引き継がれ、これ以降のコールは受信されません。

この回答 https://stackoverflow.com/a/3756619/2783541

+0

をチェックしかし、私はまだonTouchメソッドが2回呼び出され、真を返す理由を理解しないとfalseを返すとき、それは1時間と呼ばれてください、助けてください –