2015-02-07 5 views
0

나는 다음과 같은 기본 레이아웃이있는 안드로이드 응용하고 싶다 : 활동은 (모든 다른 레이아웃이) 몇 조각을 보유해야스크롤 조각 활동 (NO viewpager) 내에서

App

을, 조각은 왼쪽 또는 오른쪽으로 스크롤 (이미지의 검은 경계선 영역에서)하거나 이전/다음 버튼을 눌러 액세스 할 수 있습니다.

조각의 레이아웃에는 다음 버튼을 누르거나 오른쪽으로 스 와이프를 수행 할 때 유효성을 검사해야하는 입력 필드가 있습니다. 입력 필드가 비어 있으면 다음 조각이 표시되지 않아야합니다.

viewpager를 사용하여이 작업을 시도했지만이 방법은 사용하기 쉽지 않은 해결 방법을 사용하기 때문에 다른 접근 방식을 찾으려고합니다.

제 질문은 : 뷰어를 사용하지 않고 위에서 설명한 기능을 구현하는 가장 좋은 방법은 무엇입니까? 아마도 제스처 수신기를 파편에 넣고 수동으로 스 와이프 할 수 있을까요?

도움을 주시면 대단히 감사하겠습니다.

+0

ViewPager의 잘못된 점은 무엇입니까? – Blackbelt

+0

gesture listener를 사용하고 필요에 따라 조각을 바꿀 수 있습니다. –

+0

@Blackbelt 유효성 검사가 매우 까다로운 것으로 나타났습니다. – deimos1988

답변

1

버튼이있는 마법사 스타일의 UI가 좋으며 거기에 적어도 하나의 라이브러리가 있습니다. 나는 일반적으로 스 와이프 이벤트에 대한 귀하의 접근 방식에 동의하지 않습니다.

이 검증 난 당신이 무슨 뜻인지 모르는

매우 까다로운 것으로 나타났다.

IMHO 가장 간단한 해결책은 ViewPager을 사용하는 것입니다. 여기서 유효성 검사 기준이 충족 될 때까지 "다음"페이지를 추가하지 않고 유효성 검사 기준이 충족되지 않으면 "다음"페이지를 제거합니다 예 : 사용자가 필드를 지 웁니다. 스톡 어댑터에서 페이지를 추가/제거하는 것이 잘 작동하지 않기 때문에 PagerAdapter을 사용하거나 my ArrayPagerAdapter을 사용해야합니다 (단 일 수 있습니다). 단 한쪽 끝에서 일 수 있습니다.

그러나 이것은 사용자의 UX가 좋지 않다고 생각합니다. 마법사에서 A, B, C 및 D라는 네 개의 총 가능한 페이지가 있다고 가정합니다. 사용자가 A에서 시작하여 필드를 채우고 B로 이동하고 필드를 채우고 C로 이동하여 필드를 채 웁니다 D로 진행하고 B로 돌아가 B 필드를 지 웁니다 (그렇지 않으면 무효화합니다). 귀하의 흐름에 따라 사용자는 B의 필드가 채워질 때까지 C로 다시 이동할 수 없습니다. '다음'버튼을 통해 진행한다는 관점에서 볼 때 B 양식의 유효성이 확인 될 때까지 해당 기능을 사용 중지하면 사용자는 이전에 해당 행동 (예 : 데스크톱 OS 마법사)을 보았을 가능성이 큽니다. 그러나 사용자는 반드시 다음 버튼과 스 와이프가 논리적으로 똑같은 것을 이해할 필요는 없습니다. 사용자는 스 와이프 할 수 있다는 것을 알게되면 원하는대로 스 와이프하는 데 익숙합니다. 따라서이 작업을 수행하는 중이면 똑바로 세우는 마법사 UI로 이동하고 이벤트를 처리 할 수 ​​있습니다.

0

ViewPager는보고있는 조각과 다음/이전 조각을 적어도 두 개로드합니다. 따라서 ViewPager를 사용하여 원활하게 수행 할 작업을 수행 할 수 없습니다.

대신 입력의 유효성을 확인한 후 이전 및 다음 버튼을 사용하여 현재 조각을 분리하고 새로운 조각을 첨부 할 수 있습니다. ViewPager처럼 보이게하려면 현재 조각과 새 조각에 슬라이드 애니메이션을 추가하면됩니다.