2014-06-12 1 views
0

나는베이스 활동이 있습니다. 기본 작업에서 작업 표시 줄 항목을 부 풀리고 있습니다. 이제 Base Activity를 확장하는 Main Activity에서 프래그먼트를 교체 할 것입니다. 교체하는 동안 새로 고침 아이콘을 숨기고 공유 아이콘을 표시합니다. 하지만 두 번째 조각이로드되기 전에 공유 아이콘이 표시됩니다. 일단 두 번째 단편이 표시되면 다시 공유 아이콘이 숨김입니다. 왜 이렇게 ... 내가 시도한 것입니다. 조각을 교체하는 동안 숨기고 보여주는 아이콘몇 가지 액션 바 아이템 숨기기

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    mMenu = menu; 
    return super.onCreateOptionsMenu(menu); 

} 

private void showOption(int id) { 
    MenuItem item = mMenu.findItem(id); 
    item.setVisible(true); 
} 

private void hideOption(int id) { 
    MenuItem item = mMenu.findItem(id); 
    item.setVisible(false); 
} 

방법 ...

, 나는이 일을 해요 :

replaceFragment(mDetailFragment); 
      showOption(R.id.action_share); 
      hideOption(R.id.action_refresh); 
+0

사용 setVisibiltiy (View.Gone) (당신이'invalidateOptionsMenu를 추가 할 수 –

+0

을 숨길 수) :

Menu mMenu ; @Override public boolean onCreateOptionsMenu(Menu menu) { mMenu = menu; return super.onCreateOptionsMenu(menu); } private boolean changeVisibility(int menuId, boolean visibility) { for (int i = 0; i < menu.size(); i++) { if (mMenu .getItem(i).getItemId() == menuId) { mMenu .getItem(i).setVisible(visibility); } } } 

는 그 다음과 같은 활동의 모든 곳에 사용합니다. action_refresh);'작동하는지 확인하십시오. – makata

+0

좋아요. 내가 시도하고 알려 드리겠습니다 – user3698989

답변

1

당신은 당신의 메뉴 참조의 각 메뉴 항목을 반복해야 그들의 재산을 바꾸는 것. ;`hideOption`후 (R.id

replaceFragment(mDetailFragment); 
changeVisibility(R.id.action_share, true); 
changeVisibility(R.id.action_refresh, false); 
+0

하지만 조각을 교체하는 동안 작업 표시 줄 항목을 바꿔야합니다. 내가이 방법을 활동 안에 쓴다면, 그것은 처음에 호출됩니다 권리? – user3698989

+0

@ user3698989, 업데이트했습니다. – makata

+0

왜 우리가 그것을 반복해야하는지 ... 왜 우리가 직접 준다면 ... 작동하지 않습니다. 그 바보를 압니다.하지만 저는 초보자입니다. 친절하게 협조합니다. – user3698989