0

각 프래그먼트가 각기 다른 옵션 메뉴가있는 뷰 페이저가 있는데, 프래그먼트가 제공되면 뷰 페이지 호출기에 현재 옵션이 제공되지만 예상대로 작동하지 않습니다. 경우에 따라 올바른 옵션 메뉴가 표시되는 경우가 있습니다. 인접한 조각 메뉴가 나타나는 경우가 있습니다. 나는 현재 페이지와 두 개의 인접한 페이지를 "현재"보기로 유지하는 페이저를 볼 수 있기 때문에 다른 SO 게시물 및 기타 사이트를 읽었으므로 옵션 메뉴는 다음과 같이 함께 생성됩니다. 문제. 새 메뉴를 부 풀리기 전에 menu.clear()를 호출하여 문제를 해결했습니다. 그러나 메뉴는 때로는 제대로 올바르게로드되지 않습니다 (실제로 대부분의 경우 실제로).보기 메뉴에서 페이지 변경시 옵션 메뉴가 올바르게 부 풀리지 않음

다른 사이트에서보기 호출기 클래스를 변경하기위한 제안이 있지만 올바른 방법인지는 확실하지 않습니다. 누구든지 솔루션에 직접 도움을 주거나이 문제를 해결하는 방법에 대한 조언을 제공 할 수 있습니까? 내가 사용하고

코드 :

@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 

     menu.clear(); 

     inflater.inflate(R.menu.A_fragment_optionmenu, menu); 

} 


@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    /* switch (item.getItemId()) { 
     case R.id.insert_tag: 

      FragmentTransaction trans = getFragmentManager().beginTransaction(); 
      trans.replace(R.id.buy_root_frame, new B_insert_tags()); 
      trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
      trans.addToBackStack(null); 
      trans.commit(); 

      return true; 
     default: 

    }*/ 
return super.onOptionsItemSelected(item); 
} 
+0

[Fragment.getUserVisibleHint] (https://developer.android.com/reference/android/app/Fragment.html#getUserVisibleHint()) – adneal

+0

보기 호출기 어댑터에서만 호출되는 것을 사용하는 방법을 시도해 볼 수 없습니다. oncreateoptionsmenu에 정보를 보내십시오. 링크가 없습니다. 링크를 만드는 방법은 무엇입니까? – user3025833

+0

ok는 올바른 메뉴를 팽창시키기 위해 뷰 페이저가 선택된 페이지에서 사용 된 활동에 대해 onprepareoptionsmenu를 사용했습니다. 작은 지체 (눈에 띄지 않지만)와 함께 작동합니다. – user3025833

답변

0

확인은보기 호출기이었다 다음 오른쪽 메뉴를 팽창 pageselected에 사용되는 활동에 onprepareoptionsmenu 사용. 작은 지체 (눈에 띄지 않지만)와 함께 작동합니다.

관련 문제