내 활동에서 나는 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
를 사용합니다. 어쩌면 내가 원하는 걸 할 수있는 또 다른 방법이 있을까요?
여기 보이는 방법은 다음과 같습니다
터치 이벤트를 사용하고 있습니까? 즉, onTouchEvent (...)에서 true를 반환하면 처리 된 것을 나타냅니다. 코드 게시 - XML 레이아웃이 실제로 도움이되지 않습니다. – Squonk
터치 이벤트를 수동으로 처리하지 않습니다. MapView는 자체적으로 처리합니다. 서랍도 마찬가지입니다. 또는 Drawer의 TouchEvent를 재정 의하여 MapView에 전달되지 않도록해야합니까? –
"또는 Drawer의 TouchEvent를 재정 의하여 MapView에 전달되지 않아야합니까?" - 한번 시도해 볼만한 가치가 있을지도 몰라. 이것은'onTouchEvent (...)의 기본 SlidingDrawer 구현은 그것을 소비하지 않고 다른 뷰에 전달한다는 의미입니다. 나는 틀릴지도 모른다. – Squonk