http://stackoverflow.com/questions/17562067/get-the-last-fragment-in-back-stack
여기 보시면
ft.replace(android.R.id.tabcontent, fragment, tag);
ft.addToBackStack(tag);
요렇게 tag를 백스택에 추가 하고,
FragmentManager fm = getSupportFragmentManager();
for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){
String ide = fm.getBackStackEntryAt(entry).getName();
Log.i("TAG", "Found fragment: " + ide);
}
이렇게 tag 를 가져와서 이름을 비교하셔도 될것 같고,
0번째를 가져와서 최상위에 있는 프레그먼트만 비교해서 현재 떠있는 화면과 동일하면 추가하지 않는등의 작업을 하면되지 않을까 합니다.
꼼수로 boolean값 하나주고 1번 버튼을 누르면 true, replace완료해서 교체되기 전에 false 값으로 바꾸고
true일때 추가 안되게하시면.. 너무 하드코딩스러운가요?ㅎㅎ;;
동일한 스택이 존재할때 백스택을 추가하지 않는건 기획적인 의도와 일치하면 그렇게 해주셔도 좋을것 같네요. (같은 화면도 여러개 쌓는게 필요할수 있으니까요.)