2012-02-22 6 views
0

Android 앱에 이상한 효과가 있습니다.뒤로 버튼이 TabGroupActivity 및 ViewSwitcher에서 예상대로 작동하지 않습니다.

각 탭마다 TabGroupActivities가있는 TabHoster를 사용합니다. 뒤로 버튼의 동작을 제외하고는 꽤 잘 작동합니다.

활동이 실행되고 뒤로 버튼에 응답합니다. 그런 다음 ViewSwitcher를 사용하여 하위 활동을 시작합니다. 내가보기 버튼에서 뒤로 버튼을 누르면 활동이 예상대로 해제됩니다. 하지만 내 활동의 onBackPressed()을 통과합니다.

내가보기 B에서 뒤로 버튼을 눌렀을 때 (detailView == true) 메소드가 호출되지 않습니다. 그 대신에 TabGroupActivity의 onBackPressed()이 호출되었고 첫 번째보기로 다시 전환 할 수 없습니다.

@Override 
public void onBackPressed() { 
    if (detailView == true){ 
     vf.showPrevious(); 
     detailView = false; 
    } 
    else { 
     super.onBackPressed(); 
    } 
return; 
} 

누구나 설명 할 수 있습니까? 그리고/또는 활동 그룹의 활동에서보기를 전환하는 방법을 말해 줄 수 있습니까?

+0

탭의 활동을 그룹화하는 것이 더 이상 사용되지 않아야합니다. 그 버그는 추악하고 아주 잘 돌아 가지 않았습니다. 조각을 대신 사용하고 FragmentTransaction.replace()를 사용하여 조각 사이를 전환하십시오. onbackPressed에서 popbackstack을 호출하면 조각 백 스테이지 처리가 다시 전환하는 데 도움이됩니다. 나는 당신의 질문에 대답하지 않기 때문에 이것을 주석으로 추가했습니다. –

+0

나는 당신이 맞을 것이라고 확신하지만 조각들은 안드로이드 3.0 (API 레벨 11)과 함께 도입되었으며 이것은 사용자의 80 % 이상을 떠날 것이다. [출처] (http://gigaom.com/mobile/android-fragmentation-not-so-bad-says-localytics/) 그래서 옵션이 아닙니다. –

+0

실제로는 옵션이 아닙니다. Android 1.5 이상을 타겟팅하는 앱에는 backporting 공식 지원 패키지가 있으므로 조각을 사용할 수 있습니다. Se http://developer.android.com/sdk/compatibility-library.html. 단지 항아리를 포함하고, FragmentActivity를 확장하고 즐기십시오! –

답변

0

며칠 후 나는 ViewSwitching 항목을 버리고 별도의 활동으로 전송하는 것이 가장 쉬운 해결책이라고 결론을 내 렸습니다.

세바스찬 올슨 (Sebastian Olsson)은 분명히 단편과 맞습니다. 단, 모든 특정 앱을 조각하기 위해 더 많은 노력을 기울일 것입니다.

관련 문제