2016-03-31 16 views
0
<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="150dp" 
     android:layout_height="150dp" 
     /> 

    <TextView 
     android:id="@+id/text_view" 
     android:layout_width="150dp" 
     android:layout_height="150dp" 
     /> 
</LinearLayout> 

View.OnTouchListener listener = new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    String view = ""; 

    switch (v.getId()) { 
     case R.id.button: 
     view = "button"; 
     break; 

     case R.id.text_view: 
     view = "text_view"; 
     break; 
    } 

    Log.i(view, "event.getAction: " + event.getAction()); 

    return false; 
    } 
}; 

View btn = this.findViewById(R.id.button); 
btn.setOnTouchListener(listener); 

btn = this.findViewById(R.id.text_view); 
btn.setOnTouchListener(listener); 

Çıktı:Neden ACTION_UP Düğme ve Metin Görünümü için farklı çalışıyor?

button: event.getAction: 0 
button: event.getAction: 1 
button: event.getAction: 0 
button: event.getAction: 2 
button: event.getAction: 2 
button: event.getAction: 2 
button: event.getAction: 2 
button: event.getAction: 2 
button: event.getAction: 2 
button: event.getAction: 2 
button: event.getAction: 1 
text_view: event.getAction: 0 
text_view: event.getAction: 0 
text_view: event.getAction: 0 
text_view: event.getAction: 0 
text_view: event.getAction: 0 

Soru: ACTION_UP ve ACTION_MOVE olaylar Button gönderiliyor ve TextView için gönderilmiyor Neden?

cevap

0

Varsayılan Etkinlik. Bir Düğüme dokunulduğunda ACTION_DOWN için göndermeTouchEvent() true değerini döndürür ve bir TextView öğesine dokunulduğunda false döndürür. Bu farklılık, söz konusu davranışa neden olur.

İlgili konular