3 개의 탭이있는 활동에 조각이 있습니다. 또한 ActionBar 항목이 3 개 있습니다. 각 탭에서 하나의 항목 만 표시되고 다른 항목은 오버플로 메뉴에 있어야합니다. 내 코드는 다음과 같습니다.변경 탭에서 ActionBar 항목의 가시성 변경
private void updateMenuItemsVisibility()
{
MenuItem itemAddGate = menu.findItem(R.id.action_add_gate);
MenuItem itemAddLinking = menu.findItem(R.id.action_new_linking);
MenuItem itemNewConversation = menu.findItem(R.id.action_new_conversation);
MenuItemCompat.setShowAsAction(itemNewConversation,
MenuItemCompat.SHOW_AS_ACTION_NEVER);
MenuItemCompat.setShowAsAction(itemAddLinking, MenuItemCompat.SHOW_AS_ACTION_NEVER);
MenuItemCompat.setShowAsAction(itemAddGate, MenuItemCompat.SHOW_AS_ACTION_NEVER);
if (viewPager.getCurrentItem() == 0)
{
MenuItemCompat.setShowAsAction(itemNewConversation,
MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
if (viewPager.getCurrentItem() == 1)
{
MenuItemCompat.setShowAsAction(itemAddLinking, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
if (viewPager.getCurrentItem() == 2)
{
MenuItemCompat.setShowAsAction(itemAddGate, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
}
그리고이 코드는 Android 4.x에서 작동합니다. 숨어있는 2.1 줄에서 작동하지 않는 것 같습니다. 탭을 두 번째 탭으로 변경하면 두 번째 항목이 세 번째 항목에 나타납니다. 이전 탭으로 전환해도 항목이 숨겨지지 않습니다. ActionBarCompat를 사용하고 있습니다. 그게 버그 야?
편집 : 실제로 Android 4.1에서 CyanogenMod를 실행하는 Samsung Galaxy S (첫 번째)에서도 이와 같이 작동합니다. 그래서 우리는 소프트웨어 키 대신에 물리적 인 버튼이있을 때 상황에 연결될 수 있습니다.
3 개의 xml을 작성하지 않고 onOptionsItemSelected()를 3 곳에서 처리하는 것을 피하고 싶었습니다. 그러나이 작업은 저에게 맞기 때문에 답변을 수락 할 것입니다. 고맙습니다. –