1

Android 4.0.3에서 ActionBarSherlock을 사용 중이므로 기본 ActionBar를 사용할 수 있습니다.액티비티로 돌아올 때 ActionBar가 빈 상태로 복원 됨

응용 프로그램을 시작할 때 모든 것이 잘 동작합니다. 그러나, 내가 홈 화면으로 가서 살해 될 때까지 기다리거나 (단순히 시스템 글꼴을 변경하면 즉각적으로 발생합니다), "마지막으로 사용한"- 대화 상자로 다시 전환하여 응용 프로그램에 모든 항목을 부드럽게 다시로드합니다. 빈 탭.

그래서 탭은 있지만 비어 있습니다 (작동하지 않습니다). 이상한 점은 Application 객체 onCreate가 호출 되어도 (TabParentActivity 에서처럼) 아래의 코드를 참조하십시오. 따라서 이론적으로 응용 프로그램이 완전히 다시 시작되어야합니다 (부분적으로 onResume과 같지 않음).

다음으로 (작업 관리자를 통해) 내 응용 프로그램을 종료하고 다시 열면 문제가 사라졌습니다. All ok Now tabs empty

+0

나에게 잘 해줘. 정확히 어떻게 수정했는지 기억이 나지 않습니다 ... ActionBar 코드를'onCreate()'대신'onResume()'으로 옮겨보십시오. – shkschneider

+0

흠, 아니, 작동하지 않았다 ... 같은 행동 ... onCreate가 다시 호출되기 때문에 이상 할 것이다. 어쨌든 Thx – user1638039

답변

1

내가 지금 나 자신에 의해 그것을 해결할 수 있었다 : 내 TabParentActivity에서 실행 바 추가하는 방법

는 : 같은

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_tab_parent); 

     //Global initialization 
     ... 

     ActionBar ab = getSupportActionBar(); 
     // set defaults for logo & home up 
     ab.setDisplayShowHomeEnabled(true); 
     ab.setDisplayShowTitleEnabled(false); 
     ab.setDisplayHomeAsUpEnabled(false); 
     ab.setDisplayUseLogoEnabled(true); 
     ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

... 

for(StolScreen s: screensInTabs){ 
      Tab t = mAb.newTab().setText(s.displayName); 
      t.setTabListener(new NormalTabListener(this.mActivity, s)); 
      mAb.addTab(t); 
     } 
} 

이 보이는 방법. 그 이유는 정말 이상합니다. 위 코드에서 루프의 탭 레이블을 s.displayName으로 설정했습니다. s는 StolScreen이라는 Enum에 속합니다.

displayName은 xml 파일에서 표시 이름을 검색하는 Tools (이전에 초기화 된) 호출을 통해 초기화됩니다. 내가 실제로 액티비티로 돌아 왔을 때 실제로 일어났던 일은 StolScreen이로드 된 것입니다 (정적 멤버와 마찬가지로 필드가 열립니다). 도구가 초기화되었습니다.

그래서 빈 문자열 만 탭에 넣어졌습니다. D. 어쨌든, 네번째 도움;)

관련 문제