마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

슬라이드 영역을 만드는 방법에 관한 질문이에요.

0 추천

이 그림처럼 화면을 드래그 하면 좌측이나 우측, 또는 위, 아래에서 뷰가 나오도록 만들려고 하는데요.

검색해보니 비슷한 것을 구현하는 방법은 몇가지 보이던데... 제가 원하는 것은 못찾겠더라구요.

제가 원하는 것은, 사용자가 저렇게 드래그 하여, 멈춘 위치만큼만 뷰가 노출되도록 하는거에요.

슬라이드 메뉴 만드는 방법들은 모두 일정한 크기의 영역이 완전히 나오거나 아니면 완전히 들어가거나

둘중의 하나더라구요.

저는 저 영역이 사용자가 드래그 하는 만큼만 나왔으면 좋겠는데, 혹시 관련한 기술이 존재하는지

궁금합니다.

 

아델토 (140 포인트) 님이 2017년 8월 8일 질문
아델토님이 2017년 8월 8일 수정

1개의 답변

0 추천
viewpager를 사용하시면 됩니다

영역이 보이고, 안보이는 것은 초기 로딩의 구현 문제지 viewpager의 문제는 아닙니다
prague (26,200 포인트) 님이 2017년 8월 8일 답변
답변 감사드립니다. 그런데요...

viewpager는 이미 써봤는데요.

저 같은 경우는, 3개의 리스트를 만들어서 화면 전환에 써봤습니다만...

제가 질문 드렸던 것은요.

사용자가 화면을 해당 방향으로 드래그 후 손을 때면,

그때까지 슬라이딩 되어 나온 만큼이 그대로 고정되는 것을 구현하는 방법에 관한 것이었어요.

그런데 viewpager는 몇개의 화면을 정해두고 그것들을 서로 전환하는 것을 구현하고 있지 않습니까?

제게 필요한 것은 그것이 아니라요.

흠...

일부 손필기 노트 앱에 보면 손 받침 있지 않습니까?

그 손받침처럼 뷰의 일부를 잡고 끌어내면, 정확히 사용자가 끌어낸 만큼만 고정되는 것 말입니다.

viewpager는 끌어낸 만큼이 아니라 완전히 화면이 전환되거나 아니면 원상복귀 되거나 둘 중 하나지 않습니까.?

암튼 질문은 이상과 같습니다.
1.고정되길 원하시면 코드상에서 width값 0dp인 view를 만들고
2.드래그한 길이만큼 해당 view의 width 값을 조정하신다음
3.invalidate 함수를 통해 뷰가 수정되었음을 알리면 될 것 같네요.
답변 감사드립니다.
결국 그러한 뷰나 레이아웃이 안드로이드 라이브러리에서 기본적으로 제공하고 있지 않다는 말씀인건가요? 즉, 직접 만들어야 한다는 것이군요.
전 혹시 그러한 기능의 api가 존재하는가 해서 질문드린것이었어요.
감사합니다.
...