2012-05-18 2 views
1

하단에 슬라이딩 서랍이 있습니다. 그 아래에는 50dp의 선형 레이아웃이 있습니다. 내용물이 아래에있는 슬라이딩 서랍

그래서 내 레이아웃은 다음과 같습니다 : 빨간색 사각형 내가 슬라이딩 서랍에 화면의 하단에서 손가락을 밀면 슬라이딩 서랍 예에 따라, 이제

을 처리 할 것입니다

enter image description here

청색 경로

enter image description here

슬라이딩 서랍 '케이 열리지 마라. 하단 활동에 클릭 활동이 반영되어 열리지 않습니다. 슬라이딩 서랍은 빨간색 직사각형 내를 정확히 클릭 한 경우에만 열립니다.

나는 아래쪽 레이아웃을 클릭 가능하게 만들려고 노력했다. false false => false focussable => false 여전히 좋지 않음.

하단 레이아웃의 클릭 이벤트를 만들 때 손가락이 레이아웃에서 벗어나는 즉시 클릭을 풀 수있는 방법에 대한 아이디어가 있습니까? 핸들이 클릭을 캡처 할 수 있도록

+0

아무 것도 당신을 도울 수 있다고 생각하지 않는다면, 클릭 할 수있는 것이 모두 필요합니까?. 그럼, 더 나은, 당신은 빨간색 사각형의 크기를 조정합니다. 몇 가지 이벤트가 있지만 터치하지 않는 것에 대해서는 클릭하지 마십시오. 즉 ondispatchtouchevent()입니다. –

+0

나는 항상 상대 레이아웃/framelayout을 사용할 수 있고 별도로 버튼을 배치 할 수 있기 때문에 아래쪽 레이어 clcikable이 필요하지 않습니다. –

+0

heght 조정이 안된다. 모두가 바닥에서 슬라이드하기 때문에 100dp라도 핸들을 클릭 할 사용자가 없기 때문에 –

답변

2

전체 선형 레이아웃 (갈색 아래쪽 막대)을 처리기 서랍으로 만들 것을 제안합니다. 이렇게하면 두 번째 사진에서 원하는 서랍을 슬라이드 할 수 있습니다.

또는 FrameLayout을 사용하여 단일 레이아웃 에서처럼 LinearLayout 및 서랍보기를 표시하고 서랍의 너비와 높이를 선형 레이아웃으로 설정하여 선형 레이아웃의 전체 영역을 커버 할 수 있습니다.

또는 마지막으로 drawer의 클릭 동작을 실행하기 위해 linearlayout (상향 방향)에 SimpleOnGestureListener을 구현합니다.

+0

하지만이 경우 하단 막대도 내가 원하지 않는 위로 올라간다. –

+0

내 업데이트 된 답변보기. 그러면 서랍의 클릭 동작을 에뮬레이션하기 위해 선형 레이아웃에 SimpleOnGestureListener 리스너를 구현해야한다. – waqaslam

+0

나는 마지막 옵션으로 염두에두고있다. :) 감사합니다. –

0

clickable = false 및 focusable = false를 시도했다고 말했습니까? focusableintouchmode = false로 설정 했습니까? (나는 세 가지를 모두 세우고 어떤 일이 일어날지를 보게된다.)

나는 최근에 고통스럽게 발견 했으므로 포커스 가능 허위는 터치 스크린이 아닌 하드웨어에만 적용됩니다. 나는 focusableintouchmode = "false"를 추가해야만했다. 아마 너에게도 도움이 될 것이다.

+0

가 작동하지 않습니다. ( –