1


안드로이드 조각 및 뒤로 버튼 문제

내가 안드로이드 조각 개발에 새로운 해요 ... : onAttach, onDetach, onCreate, onCreateView에서 myActivity.invalidateOptionMenu() 및 getActionBarActivity.setTitle()을 사용하고 onCreateOptionMenu에서 메뉴를 지웠을지라도 모두 헛된 것이 었습니다!
drawerLayout을 사용하여 조각을 다시 인스턴스화 할 때 동일한 문제가 다시 발생합니다!
예를 들어, ListingFragment, EditingFragment, DetailsFragment 및 ImportFragment가 있습니다. 여기에 EditingFragment 옵션이있는 ListingFragment가 있습니다.
PS : 편집 조각으로 돌아 가면 메뉴가 더 이상 작동하지 않습니다!

확인 화면 캡처 here

i가 발생하고 두 번째 문제는 몇 번이, 조각이 화면 캡처 울부 짖는 소리를 참조 같은 컨테이너에 추가 얻을 것입니다! ImportFragment에 포함 된 내용 (즉, 작업 표시 줄 제목)이 "가져 오기"단어이고, 조각 DetailsFragment가 열려 있으면 다른보기 (더하기 메뉴)가 화면에 나타납니다. 조각에서 가져 오기 버튼을 누르면 다음 화면이 표시됩니다.

확인 화면 캡처 here

사람이 좋은 작업 응용 프로그램을 얻을 수있는 일을 다시 정렬하는 방법을 알고 있나요? 뿐만 아니라 같은 문제에 직면 할 수있는 사람들을위한

private void setActionBarTitle(String title) { 
    ((ActionBarActivity) getActivity()).getSupportActionBar().setTitle(
      title); 

} 


public void restoreActionBar() { 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    menu.clear(); 
    return super.onCreateOptionsMenu(menu); 
} 

public void restoreMenu() 
{ 
    restoreActionBar(); 
    this.invalidateOptionsMenu(); 
} 
+0

안녕에 의해 활동을 사용하여 제목을 변경하고 스택 오버플로에 오신 것을 환영 수 있습니다! 설명에서 코드를 알아내는 것은 어렵습니다. 대부분의 사람들은 오프 사이트 인 화면 캡처에 대한 임의의 링크를 클릭하는 것을 좋아하지 않습니다. 질문을 직접 수정하고 해당 코드 섹션을 질문에 직접 추가 할 수 있습니까? 감사합니다 –

+1

안녕하세요. 고맙습니다. 나는 코드를 추가하고 링크를 남겼다. 중요한 것은 내가 얻은 결과의 스크린 샷을 볼 수 있기 때문이다. – Hideya

+0

알다시피, 이미지를 직접 질문에 포함시킬 수도 있습니다. :) –

답변

2

, 난 길을 발견했다 (또는 방법)

메뉴 문제 : 여기

는 관련 코드 나는 조각을하지 추가하고 "그들을 대체". 조각에 "옵션 메뉴"가 없을 때마다 작업 표시 줄에 추가 된 마지막 메뉴가 유지됩니다. 추가를 중지하고 조각 교체를 시작하거나 새로운 "빈"메뉴를 부 풀립니다. 입니다 주요

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    setHasOptionsMenu(true); 
    menu.clear(); 
    inflater.inflate(R.menu.main, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context="com.mypackage.MainActivity" > </menu> 

돌아 가기 버튼 문제 : 사용자의 작업에 다음 코드를 추가

@Override 
public void onBackPressed() { 
    if (getSupportFragmentManager().getBackStackEntryCount() == 0) { 
     this.finish();  } else { 
     getSupportFragmentManager().popBackStack(); 
     if(fragmentX.isResumed()) 
      getSupportActionBar().setTitle("the title"); 
    } 
} 

PS : 당신이 isResumed 또는에서 IsVisible을 사용할 수 있습니다. 작업 표시 줄 제목과 관련된 모든 것 : 추가 한 조각에 대한 참조를 유지하십시오. 당신은 조각 자체를 사용하여 작업 표시 줄의 제목을 변경를 해결하려면

if(fragmentX.isVisible()) getSupportActionBar.setTitle(getString(R.string.your_string_name));