2012-10-19 2 views
1

이의 말을하자, 이런 RelativeLayout의가있다 :터치 이벤트에서 RelativeLayout의 자식보기의 보이지 않는 부분을 피하는 방법은 무엇입니까?

다음
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:eve="http://schemas.android.com/apk/res/com.yyg.kaolamusic" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/A" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <LinearLayout 
     android:id="@+id/B" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" /> 
</RelativeLayout > 

, 우리는 우리가 B에 닿아 B가 터치 이벤트를 처리하지 않는 경우 터치 이벤트가 자식 A를 통과 피할 수있는 방법?

+0

자세한 내용과 설명 .. – NagarjunaReddy

+0

@NagarjunaReddy이 A의 B 오버레이 때문에, 사용자가 A (스크롤, 예를 들어) 몇 가지 조치를 취할 것으로 예상 않을 것, 간단한 질문 때 그들은 A 위로 손가락을 움직이지만 RelativeLayout은 그렇게 행동합니다. – liuyong

+1

* 터치 이벤트가 피할 수있는 방법은 B를 터치하면 B가 터치 이벤트를 처리하지 않는 경우입니다. * 터치 리스너가 true를 반환하면 해당 이벤트를 처리합니다. – Luksprog

답변

0

터치 이벤트를 항상 사용하는보기 B에 대한 터치 리스너를 설정할 수 있으므로 A는 터치 이벤트를받지 않습니다.

예제 코드 :

mA = (LinearLayout) getView().findViewById(R.id.A); 
    mA.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      Toast.makeText(getActivity(), "Touch A",Toast.LENGTH_LONG).show(); 
      return false; 
     } 
    }); 
    mB = (LinearLayout) getView().findViewById(R.id.B); 
    mB.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      Toast.makeText(getActivity(), "Touch B",Toast.LENGTH_LONG).show(); 
      return true; 
     } 
    }); 
+0

OK,이 대답을 수락합니다. 위의 주석을 보았습니까? 나는 @Luksprog가 이것을 대답하도록 내버려 뒀다. – liuyong

관련 문제