2012-04-08 5 views
1

애플리케이션 제목이 포함 된 고정 헤더가 포함 된 Android 애플리케이션을 제작 중입니다. 현재 액티비티가 액티비티를 바꿀 때, 머리글은 슬라이드 아웃되고 양쪽 액티비티의 헤더가 동일하기 때문에 슬라이드됩니다. 나는 활동을 전환 할 때조차 항상이 우두머리가 고쳐지기를 좋아한다.Android : 각보기에 대해 서로 다른 Java 파일

이것은 쉽게 헤더 아래의 레이아웃에 viewswitcher/viewflipper를 사용하여 응용 프로그램의 특정 부분에서만보기를 전환하여 수행 할 수 있다고 생각합니다. 내 원하는 효과를 만들 것입니다. 이 문제는 응용 프로그램에있는 모든 단일 화면에서 동일한 java 파일을 사용한다는 것입니다. 나는 약 12/13 다른 스크린을 가지고 있기 때문에, 모두 버튼 textviews, listviews 등을 포함하고있다. 그것은 매우 지저분한 코드를 만들 것이다. 따라서 각 '화면'에 자바 파일을 사용하는 것을 선호하지만 다른 활동을 고수해야하며 활동 전환시 상위에 헤더를 유지할 수 없습니다.

모든 응용 프로그램 화면마다 다른 Java 파일을 사용하면서 실제로 고정 헤더를 유지하고 (아래의보기/레이아웃을 활성화 할 수있는) 솔루션이 있습니까?

답변

2

Fragments, FragmentStatePagerAdapterViewPager으로 작업하십시오. 고정 헤더가있는 레이아웃을 만들 수 있습니다 - 그리고 아래에 ViewPager에 각기 다른 논리가 포함 된 다른 Fragments가 포함되어있는 레이아웃을 만들 수 있습니다.

액티비티 대신 프레 그먼트를 사용하는 것은 꽤 바뀌었지만, 매우 유용한 것으로 나타났습니다. 출발점은 this 링크입니다.

사용자가 스 와이프를 허용하지 않고 뷰 페이지 항목을 프로그래밍 방식으로 전환 할 수 있도록하려면 tutorial을 확인하고 setCurrentItem 메서드를 사용하여 스 와이프합니다.

+0

그러나 단편은 API 레벨 11부터 지원됩니다 (Android 3.0). 내 애플리케이션이 2/2 또는 그 이상 레벨에서 작동해야합니다. – Niles11

+1

아니요, 호환성 패키지를 확인하십시오. 조각을 사용하여 다시 사용할 수 있습니다. 1.6. 출발점 링크는이를 가리 킵니다. –

+0

글쎄 그것은 꽤 많은 시간이 걸렸지 만, 결국 나는 그것을 올바로 받아 들였다. 내 응용 프로그램을 지금 조각을 사용하고 원하는 효과를 얻었다. 하지만 지금 내면을 실제로 굽는 것은 두 가지입니다. setCurrentItem을 사용하면 부드러운 transistion 효과가 생성되지 않습니다 (true로 설정된 부울 smoothScroll을 사용하는 경우에도 마찬가지 임). 따라서 오른쪽에서 밀어 넣는 대신보기가 거의 즉시로드됩니다. 그것을 바꿀 수있는 방법이 있습니까? 두 번째 문제는 버튼 onclicks를 다루는 것입니다. XML에서 메서드 이름을 지정하면 (onClick에서)이 코드는 작업에서 해당 메서드를 호출하지만 조각이 아니라 매우 성가시다 ... – Niles11

관련 문제