728x90
반응형

햄버거 버튼 <-> 뒤로가기 전환에 성공하고 기뻐하고 있을 때 이상한 점이 눈에 들어왔다

 

HomeFragment로 돌아와도 Navigation View에 Item이 그대로 선택되어 있었다...

 

아래 코드로 해결할 수 있었다

int size = navigationView.getMenu().size();
        for (int i = 0; i < size; i++) {
            navigationView.getMenu().getItem(i).setChecked(false);
        }

navigationView의 menu의 크기(item의 개수)를 받아와서 모든 item를 선택해제하는 함수다

 

이걸 public method로 작성한 뒤 homeFragment의 onResume에 추가했다

//MainActivity.java
    public void resetSelectedItem()
    {
        int size = navigationView.getMenu().size();
        for (int i = 0; i < size; i++) {
            navigationView.getMenu().getItem(i).setChecked(false);
        }
    }
//homeFragment.java
    @Override
    public void onResume() {
        super.onResume();

        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM", Locale.KOREA);
        FragmentActivity activity = getActivity();
        if(activity != null)
        {
            ((MainActivity) activity).setActionBarTitle(format.format(calendar.getTime()));
            ((MainActivity) activity).resetSelectedItem();
        }
    }

 

이제 Home으로 돌아와도 Item이 선택된 상태로 남아있지 않게 되었다