2014-04-26 3 views
2

내가 가지고 다음과 같은 흐름이있는 응용 프로그램 :안드로이드 사이드 메뉴 탐색 - 처리 조각

enter image description here

요점은 우리가 하나의 Activity 및 슬라이딩 메뉴있는 사용자가 선택할 수 있습니다을 가지고있다 몇 가지 최상위 조각 중 하나 (최상위 수준에서 사용자가 뒤로 키를 누르면 앱이 종료됨을 의미).

이러한 조각에서 사용자는 다른 키 (예 : 포럼 주제 -> 주제 세부 정보 -> 포스터 프로필 -> 포스터의 친구 -> 친구 프로필)로 이동하여 뒤로 키를 사용하여 사용자를 저장된 사용자 이전 단편의 상태 (예 : 스크롤 위치 복원 등). 이 경우

, 전 사용

void addFragment(Fragment f) { 
    //add fragment in a transaction, so back key does its thing 
    getSupportFragmentManager().beginTransaction().addToBackStack(null) 
      .add(R.id.fragment_container, f).commit(); 
} 

사용자가 그이면의 전체 스택은 새로운 단편으로 대체 얻을 것이다 다른 최상위 단편, 이러한 단편 중 어느 쪽 메뉴를 열고 선택하면 (사용자가 다시 누를 때와,이 경우

응용 프로그램 종료는) 내가 사용

void replaceFragment(Fragment f) { 
    //remove all fragments and add a top-level one 
    getSupportFragmentManager().popBackStackImmediate(null, 
      FragmentManager.POP_BACK_STACK_INCLUSIVE); 
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, f).commit(); 
} 

이 좋은 네비게이션을 고려 있습니까? iOS 앱에서 각 최상위 조각은 자체 백 스택을 기억하지만 잔인 함처럼 보였으므로 최상위 수준 스위치에서 백 스택을 파괴하면 충분합니다.

+1

을 즐길 수,하지만 난 당신의 그림을 사랑 해요! 어떤 목적으로 –

답변

0

사용

private final static String TAG_FRAGMENT = "TAG_FRAGMENT"; 

그리고

FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction ft = fragmentManager.beginTransaction(); 

ft.replace(R.id.content_frame, new Frag_Yourfrag(), TAG_FRAGMENT); 
ft.addToBackStack(null); 
ft.commit(); 

는 Totaly 쓸모 :)

+0

? 내 앱에서 더 깊이 탐색 할 때 조각을 교체하면 다시 만들어야하며 상태 (예 : 스크롤 위치)가 뒤로 가기 버튼으로 손실됩니다. – Axarydax