2014-04-24 3 views
0

내 작업 표시 줄은 두 개의 탭 (기업 목록 및 업체지도)으로 구성되어 있습니다. 누군가가 목록에서 선택하면 탭을 숨기고 그 비즈니스 페이지를 보여주고 싶습니다. 사용자가 다시 조회하면 비즈니스 조각이 팝되고 탭이 다시 표시되어야합니다.Android - 탭 조각으로 돌아 가기

이 방법을 사용하는 가장 좋은 방법은 무엇입니까? 지금까지 다음 코드를 사용하여 비즈니스 조각을 팝업하면 설명 할 수없는 재귀 루프가 발생합니다. (

그림 : BusinessListFragment 탭을 표시합니다. 비즈니스를 선택하고 조각을 바꿔서 onPause()에 설정합니다. . 표준 탐색 모드는 다시 키를 명중하고, BusinessListFragment의 onResume()에서 나는이 있습니다.

탭을 다시 가져되어 있지만, 응용 프로그램은 루프로 정지되어
ActionBar ab = mHostingActivity.getSupportActionBar(); 
    if (ab.getNavigationMode() == ActionBar.NAVIGATION_MODE_STANDARD) 
     ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

탭을 분명히 여전히 존재합니다. 어쩌면 나는 내 코드에서 이상한 일을하고있을 것입니다 (나는 그렇지 않다고 확신합니다), 또는 안드로이드는 네비게이션 모드가 설정되었을 때 이상한 것을합니다?

편집 : 탭에 탐색 모드를 설정하는 것만으로 실제로 첫 번째 탭을 선택하는 것으로 나타났습니다. 이는 재귀를 설명 할 것이라고 생각합니다. 흥미 롭 군!

답변

0

이 좋아 잘 알아낼 수있는 걸 렸어요 그러나 희망이 미래 명의 Google 도움이 될 것입니다 : D

을 가장 좋은 방법은 내에서 탐색 모드를 설정/쇼 탭을 시도하지 숨길 결코 것 같다 탭 조각의 onResume/onPause 또는 그 안의 모든 부분에 적용됩니다.

따라서 세부 (비즈니스) 조각의 onResume()에서 모드를 표준으로 설정했습니다. 일반적으로 세부 조각 내에서 이동하는 탐색 계층 구조가 더 이상없는 경우에는 세부 프레젠테이션의 onPause()에서 뒤로 누름 또는 위로 누름을 고려하여 모드를 다시 탭으로 다시 설정하는 것이 좋습니다.

하지만 제 경우에는 비즈니스 페이지의 요소를 클릭하여 다른 조각 (스택 수를 3으로 남김)을 시작할 수 있습니다. 즉, onPause() 내에서 탭을 '켤 수 없음'을 의미하고 가장 좋은 해결책은 onDetach() 내에서 수행하십시오. 이는 세부 조각이 스택에서 실제로 팝되었을 때만 탭이 켜져 있음을 의미합니다.

바라기를이 솔루션은 정확합니다. 스택 스택 리스너를 포함하여 onBackPressed를 재정의하는 등 많은 아이디어를 가지고 놀았지만 나에게는 이것이 최고의 옵션 인 것 같습니다.

관련 문제