2011-12-07 3 views
0

내 활동에서 나는 FrameLayout을 루트 컨테이너로 사용합니다. 안에는 SlidingDrawer과 osmdroid MapView이 있습니다. SlidingDrawer이 열렸을 때을 터치하면 MapView도 터치 이벤트를 수신하고 타일이 이동합니다. 어떻게 해결할 수 있습니까? 여기 내 레이아웃 파일 : 그것은 원하는 레이아웃의 위치를 ​​수 있기 때문에아래의 터치 이벤트 금지 FrameLayout 내부보기

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <org.osmdroid.views.MapView 
     android:id="@+id/mapView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     tilesource="MapquestOSM" /> 

    <SlidingDrawer 
     android:id="@+id/SlidingDrawer" 
     android:layout_width="fill_parent" 
     android:layout_height="250dip" 
     android:layout_alignParentBottom="true" 
     android:layout_gravity="bottom"> 

     <TextViev /> 
     <RelativeLayout> 
      <Button/> 
     </RelativeLayout> 
    </SlidingDrawer> 

</FrameLayout> 

나는 FrameLayout를 사용합니다. 어쩌면 내가 원하는 걸 할 수있는 또 다른 방법이 있을까요?

여기 보이는 방법은 다음과 같습니다

enter image description here

+0

터치 이벤트를 사용하고 있습니까? 즉, onTouchEvent (...)에서 true를 반환하면 처리 된 것을 나타냅니다. 코드 게시 - XML ​​레이아웃이 실제로 도움이되지 않습니다. – Squonk

+0

터치 이벤트를 수동으로 처리하지 않습니다. MapView는 자체적으로 처리합니다. 서랍도 마찬가지입니다. 또는 Drawer의 TouchEvent를 재정 의하여 MapView에 전달되지 않도록해야합니까? –

+0

"또는 Drawer의 TouchEvent를 재정 의하여 MapView에 전달되지 않아야합니까?" - 한번 시도해 볼만한 가치가 있을지도 몰라. 이것은'onTouchEvent (...)의 기본 SlidingDrawer 구현은 그것을 소비하지 않고 다른 뷰에 전달한다는 의미입니다. 나는 틀릴지도 모른다. – Squonk

답변

0
당신이지도보기 앞에 표시보기의 onClick 이벤트를 처리 할 수 ​​

, 나는 단지 그와 일을했다! : D

4

android : clickable = "true"와 같은 상단 레이아웃을 설정할 수 있습니다.