개발 - 안드로이드

안드로이드 TabLayout 서브페이지에서 서브페이지 이동시 Tab 인덱스 변경 방법

개미v 2023. 9. 11. 17:48

서브 페이지(fragment) → 서브 페이지(fragment) 이동

1-1 Fragment에서  2-1 Fragment 이동은 어렵지 않게 할 수 있습니다.
그런데 문제는 상단의 탭이 변경되지 않습니다.

검색해 보면 나오는 상단의 탭을 변경하는 방법은 이벤트 리스너 호출해서 변경하는 방식이라 문제가 됩니다.
예) tabLayout.getTabAt(1).select();

 

해결 방법

상단 탭만 변경은 이렇게 하면 가능 합니다.
깔끔하지는 않은데 더 좋은 방법 있으면 댓글 남겨 주세요.

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
    // 탭 메뉴 선택
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        // 서브 페이지에서 서브 페이지 이동시는 탭 이벤트 중지
        if (isSubFragment == true) {
            isSubFragment = false;
            return;
        }

        ... ...
		
    }

    // 탭 메뉴 선택
    @Override
    public void onTabReselected(TabLayout.Tab tab) {
        // 서브 페이지에서 서브 페이지 이동시는 탭 이벤트 중지
        if (isSubFragment == true) {
            isSubFragment = false;
            return;
        }

       ... ...
	   
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {
    }
});
// 2-1 서브 페이지로 이동
((MainActivity) getActivity()).isSubFragment = true;
((MainActivity) getActivity()).tabLayout.getTabAt(1).select();
((FragmentActivity) context).getSupportFragmentManager().beginTransaction().add(R.id.container, fragment2Sub1).commit();